博客
关于我
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/

    你可能感兴趣的文章
    Opencv 完美配置攻略 2014 (Win8.1 + Opencv 2.4.8 + VS 2013)上
    查看>>
    opencv 模板匹配, 已解决模板过大程序不工作的bug
    查看>>
    OpenCV 错误:(-215)size.width>0 &&函数imshow中的size.height>0
    查看>>
    opencv&Python——多种边缘检测
    查看>>
    opencv&python——高通滤波器和低通滤波器
    查看>>
    OpenCV+Python识别车牌和字符分割的实现
    查看>>
    OpenCV-Python接口、cv和cv2的性能比较
    查看>>
    OpenCV/Python/dlib眨眼检测
    查看>>
    opencv1-加载、修改、保存图像
    查看>>
    opencv10-形态学操作
    查看>>
    opencv11-提取水平直线和垂直直线
    查看>>
    opencv12-图像金字塔
    查看>>
    opencv13-基本阈值操作
    查看>>
    opencv14-自定义线性滤波
    查看>>
    opencv15-边缘处理
    查看>>
    opencv16-Sobel算子
    查看>>
    opencv17-laplance算子
    查看>>
    opencv18-canny检测算法
    查看>>
    opencv19-霍夫直线变化
    查看>>
    opencv2-矩阵掩膜操作
    查看>>