博客
关于我
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实现MD5 (附完整源码)
    查看>>
    Objective-C实现md5算法(附完整源码)
    查看>>
    Objective-C实现MeanSquareError均方误差算法 (附完整源码)
    查看>>
    Objective-C实现median filter中值滤波器算法(附完整源码)
    查看>>
    Objective-C实现memcmp函数功能(附完整源码)
    查看>>
    Objective-C实现memcpy函数功能(附完整源码)
    查看>>
    Objective-C实现memoization优化技术算法(附完整源码)
    查看>>
    Objective-C实现memset函数功能(附完整源码)
    查看>>
    Objective-C实现merge insertion sort合并插入排序算法(附完整源码)
    查看>>
    Objective-C实现merge sort归并排序算法(附完整源码)
    查看>>
    Objective-C实现mergesort归并排序算法(附完整源码)
    查看>>
    Objective-C实现MidpointIntegration中点积分算法 (附完整源码)
    查看>>
    Objective-C实现miller rabin米勒-拉宾素性检验算法(附完整源码)
    查看>>
    Objective-C实现Miller-Rabin素性测试程序(附完整源码)
    查看>>
    Objective-C实现Miller-Rabin素性测试程序(附完整源码)
    查看>>
    Objective-C实现min cost string conversion最低成本字符串转换算法(附完整源码)
    查看>>
    Objective-C实现MinhashLSH算法(附完整源码)
    查看>>
    Objective-C实现MinhashLSH算法(附完整源码)
    查看>>
    Objective-C实现MinHeap最小堆算法(附完整源码)
    查看>>
    Objective-C实现minimum coin change最小硬币找零算法(附完整源码)
    查看>>