需要引入一系列第三方模块
const express = require('express')
const router = express.Router()
const db = require('../db')
const md5 = require('md5')
const jwt = require('jsonwebtoken')
router.use((req, res, next) => {
let {
username,
password
} = req.body
if (!/^[a-zA-Z][0-9a-zA-Z]{1,9}$/.test(username)) {
next('用户名输入2-10位,必须字母开头')
} else if (!/^\S{6,12}$/.test(password)) {
next('密码只能输入6-12位')
} else {
next()
}
})
router.post('/reguser', (req, res) => {
let {
username,
password
} = req.body
password = md5(password)
db(`select * from user where username='${username}'`, (err, result) => {
if (err) throw err
if (result.length > 0) {
res.send({
status: 1,
message: '用户已存在'
})
} else {
db(`insert into user set username='${username}',password='${password}'`, (e, r) => {
if (e) throw e
res.send({
status: 0,
message: '注册成功',
data: r
})
})
}
})
})
router.post('/login', (req, res) => {
let {
username,
password
} = req.body
password = md5(password)
db(`select * from user where username='${username}' and password='${password}'`, (err, result) => {
if (err) throw err
if (result.length > 0) {
let token = jwt.sign({
id: result[0].id
}, 'qwewerqwee', {
expiresIn: '2h'
})
res.send({
status: 0,
message: '登陆成功',
token: 'Bearer ' + token
})
} else {
res.send({
status: 1,
message: '登陆失败'
})
}
})
})
router.use((err, req, res, result) => {
res.send({
status: 1,
message: err
})
})
module.exports = router