express+mysql学习

express+mysql学习

express 一个node路由框架

npm install express --save-dev

在这里插入图片描述

nodejs中使用mysql数据库

npm install mysql --save-dev

在这里插入图片描述
mysqlConfig.js 配置mysql数据库连接地址、用户名、密码、连接的数据库名称
在这里插入图片描述

使用子路由 express.Router

const express = require('express');
const router = express.Router();

以下是一个注册登录demo,根据express、mysql进行数据加密解密
user.js

const express = require('express');
const router = express.Router();
let db = require('../db/index.js')
const bcrypt = require('bcrypt');//引入密码加密库


router.post('/login', (req, res) => {
    let userName = req.body.username;
    let passWord = req.body.password;
    let sql = `select * from user where username='${userName}'`;
    db(sql, (err, result) => {
        if (err) {
            res.json({ retCode: 3, retMsg: "发生错误" })
        } else {
            if (result.length == 0) {
                res.json({ retCode: 2, retMsg: "未查询到用户信息" })
            } else {
                bcrypt.compare(passWord, result[0].password, function (err, flag) {
                    const pwdMatchFlag = flag;
                    if (pwdMatchFlag) {
                        res.json({ retCode: 1, retMsg: "登录成功" })
                    } else {
                        res.json({ retCode: 1, retMsg: "用户名或密码错误" })
                    }
                })
            }
        }
    })
})
router.post('/register', (req, res) => {
    let userName = req.body.username;
    let passWord = req.body.password;
    let telephone = req.body.telephone;
    let email = req.body.email;
    //生成salt随机数
    const saltSound = 10;
    //生成hash值即为加密后的密码
    bcrypt.genSalt(saltSound, function (err, salt) {
        bcrypt.hash(passWord, salt, function (err, hash) {
            //把hash值赋值给password变量
            passWord = hash;
            let sql = `insert into user(username,password,telephone,email) values('${userName}','${passWord}','${telephone}','${email}')`;
            db(sql, (err, result) => {
                console.log(err)
                res.json({ retCode: 1, retMsg: "成功" });
            })
        })
    })

})


module.exports = router;

index.js

const express = require('express');
const app = new express();
const bodyParser = require('body-parser');
const user = require('./routers/user');//引入子路由

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));

app.use('/user', user);//加载user路由  login   register

const port = 3000;

app.listen(port, () => {
    console.log(`服务器启动在${port}端口......`);
})

使用bcrypt模块进行密码加密解密比对

npm install bcrypt --save-dev

package.json如下
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值