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如下