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

    你可能感兴趣的文章
    Objective-C实现二项式堆binomial heap算法(附完整源码)
    查看>>
    Objective-C实现互斥锁同步执行两个线程函数(附完整源码)
    查看>>
    Objective-C实现交易密码算法(附完整源码)
    查看>>
    Objective-C实现亨元模式(附完整源码)
    查看>>
    Objective-C实现人工势场法(附完整源码)
    查看>>
    Objective-C实现人物动画移动效果(附完整源码)
    查看>>
    Objective-C实现从给定的子串列表返回包含所有可能的列表算法(附完整源码)
    查看>>
    Objective-C实现代理服务器(附完整源码)
    查看>>
    Objective-C实现代理模式(附完整源码)
    查看>>
    Objective-C实现令牌桶算法(附完整源码)
    查看>>
    Objective-C实现以数组形式返回斐波那契数列fibonacci算法(附完整源码)
    查看>>
    Objective-C实现以递归的形式MatrixExponentiation矩阵求幂算法 (附完整源码)
    查看>>
    Objective-C实现以递归的方式实现十进制转二进制算法(附完整源码)
    查看>>
    Objective-C实现仿射变换加解密算法(附完整源码)
    查看>>
    Objective-C实现仿射密码加解密算法(附完整源码)
    查看>>
    Objective-C实现仿射密码算法(附完整源码)
    查看>>
    Objective-C实现众数(附完整源码)
    查看>>
    Objective-C实现优先数调度算法(附完整源码)
    查看>>
    Objective-C实现优先级调度算法(附完整源码)
    查看>>
    Objective-C实现优先级调度算法(附完整源码)
    查看>>