博客
关于我
node.js平台下,利用cookie实现记住密码登陆(Express+Ejs+Mysql)
阅读量:444 次
发布时间:2019-03-06

本文共 3542 字,大约阅读时间需要 11 分钟。

安装Node.js、Express和MySQL入门基础

作为一名开发人员,首先需要完成Node.js、Express和MySQL的基础配置。下面是详细的入门指南。

第一步,安装并配置MySQL数据库

  • 下载并安装MySQL数据库。如果你使用的是Windows系统,可以从官方网站下载安装包。
  • 安装完成后,运行MySQL服务。
  • 进入 MySQL 提供的命令行界面,执行以下命令创建一个新的数据库:
    CREATE DATABASE '你的数据库名称';
  • 创建用户表,用于数据库登录:
    CREATE USER 'username' @'localhost' IDENTIFIED BY 'password';GRANT ALL PRIVILEGES ON *.* TO 'username';FLUSH PRIVILEGES;
  • 第二步,配置Express的session和cookie模块

    在Express应用程序中,session和cookie模块用于管理用户会话和cookie。配置步骤如下:

  • 在你的主应用文件(通常是app.js)中添加以下代码:
    const express = require('express');const session = require('express-session');const cookie = require('cookie-parser');app.use(cookie());app.use(session({    secret: '你的秘密键',    resave: true,    saveUninitialized: true,    cookie: {        maxAge: 10000 // cookie的有效时间,单位为毫秒    }}));
  • 确保express-sessioncookie-parser包已安装:
    npm install express-session cookie-parser
  • 第三步,配置MySQL数据库连接

  • 在你的应用文件中添加MySQL配置:
    const mysql = require('mysql');const db = mysql.createConnection({    host: 'localhost',    port: 3306,    user: 'username',    password: 'password',    database: '你的数据库名称',    multipleStatements: true});db.connect((err) => {    if (err) {        console.error('数据库连接失败');    }});
  • 确保安装了mysql包:
    npm install mysql
  • 第四步,下载并配置EJS模块

    EJS是Express的视图引擎,用于渲染动态网页内容。

  • 安装EJS:
    npm install ejs --save-dev
  • 在应用文件中配置EJS:
    app.set('views', __dirname + '/views');app.engine('html', ejs.__express);app.set('view engine', 'html');
  • 第五步,开发登录页面

    创建login.html文件,用于用户登录:

    登录
    忘记密码?

    第六步,定义路由并处理登录请求

    perData.js文件中,定义登录处理函数:

    const doLogin = (req, res) => {    const phone = req.body.phone;    const pwd = req.body.pwd;        db.query('SELECT * FROM t_user WHERE u_tel = ? AND u_pwd = ?', [phone, pwd], (err, data) => {        if (err) {            console.error('数据库查询失败');            return res.status(500).json({ error: '登录失败' });        }        if (data.length > 0) {            // 处理记住密码功能            res.cookie('user', { user: phone, pwd: pwd }, { maxAge: 1000 * 60 * 60 });            req.session.user = phone;            res.render('perCenter', { u_tel: req.session.user });        } else {            return res.status(401).json({ error: '用户名或密码错误' });        }    });};

    第七步,优化服务器入口文件

    修改app.js文件,实现自动登录功能:

    const express = require('express');const session = require('express-session');const cookie = require('cookie-parser');const ejs = require('ejs');const per = require('./routes/perData.js');const app = express();app.use(cookie());app.use(session({    secret: '你的秘密键',    resave: true,    saveUninitialized: true,    cookie: { maxAge: 10000 }}));app.set('views', __dirname + '/views');app.engine('html', ejs.__express);app.set('view engine', 'html');app.use(express.logger('dev'));app.use(express.bodyParser());app.use(express.methodOverride());app.use(app.router);app.use(express.static(__dirname + '/public'));app.get('/', (req, res) => {    if (req.cookies.user) {        res.render('perCenter', { u_tel: req.cookies.user.user });    } else {        res.redirect('index.html');    }});app.post('/login.do', per.doLogin);app.set('port', 8889);app.listen(app.get('port'), () => {    console.log('启动成功', app.get('port'));});

    第八步,开发用户中心页面

    创建perCenter.js视图文件:

    通过以上步骤,你可以完成一个完整的登录系统。记住,随着项目的发展,你可能需要进一步优化和扩展代码,以满足更复杂的需求。

    转载地址:http://unufz.baihongyu.com/

    你可能感兴趣的文章
    Openlayers高级交互(14/20):汽车移动轨迹动画(开始、暂停、结束)
    查看>>
    Openlayers高级交互(15/20):显示海量多边形,10ms加载完成
    查看>>
    Openlayers高级交互(16/20):两个多边形的交集、差集、并集处理
    查看>>
    Openlayers高级交互(17/20):通过坐标显示多边形,计算出最大幅宽
    查看>>
    Openlayers高级交互(19/20): 地图上点击某处,列表中显示对应位置
    查看>>
    Openlayers高级交互(2/20):清除所有图层的有效方法
    查看>>
    Openlayers高级交互(20/20):超级数据聚合,页面不再混乱
    查看>>
    Openlayers高级交互(3/20):动态添加 layer 到 layerGroup,并动态删除
    查看>>
    Openlayers高级交互(6/20):绘制某点,判断它是否在一个电子围栏内
    查看>>
    Openlayers高级交互(7/20):点击某点弹出窗口,自动播放视频
    查看>>
    Openlayers高级交互(8/20):选取feature,平移feature
    查看>>
    Openlayers:DMS-DD坐标形式互相转换
    查看>>
    openlayers:圆孔相机根据卫星经度、纬度、高度、半径比例推算绘制地面的拍摄的区域
    查看>>
    OpenLDAP(2.4.3x)服务器搭建及配置说明
    查看>>
    OpenLDAP编译安装及配置
    查看>>
    Openmax IL (二)Android多媒体编解码Component
    查看>>
    OpenMCU(一):STM32F407 FreeRTOS移植
    查看>>
    OpenMCU(三):STM32F103 FreeRTOS移植
    查看>>
    OpenMCU(三):STM32F103 FreeRTOS移植
    查看>>
    OpenMCU(二):GD32E23xx FreeRTOS移植
    查看>>