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

    你可能感兴趣的文章
    php/jsp/asp的区别
    查看>>
    php20个主流框架
    查看>>
    php301到https,虚拟主机设置自动301跳转到HTTPS
    查看>>
    php5 apache 配置
    查看>>
    php5 升级 php7 版本遇到的问题处理方法总结
    查看>>
    PHP5.3.3安装Mcrypt扩展
    查看>>
    PHP5.4 + IIS + Win2008 R2 配置
    查看>>
    Redis从入门到精通
    查看>>
    PHP5.6.x编译报错:Don't know how to define struct flock on this system, set --enable-opcache=no
    查看>>
    php5ts.dll 下载_php5ts.dll下载
    查看>>
    php7
    查看>>
    PHP7 新特性
    查看>>
    PHP7+MySQL5.7+Nginx1.9. on Ubuntu 14.0
    查看>>
    php7.1.6 + redis
    查看>>
    php7中使用php_memcache扩展
    查看>>
    PHP7中十个需要避免的坑
    查看>>
    php7和PHP5对比的新特性和性能优化
    查看>>
    PHP7安装pdo_mysql扩展
    查看>>
    PHP7实战开发简单CMS内容管理系统(7) 后台登录架构 用户登录校验
    查看>>
    php7,从phpExcel升级到PhpSpreadsheet
    查看>>