一、初始化:
1、创建项目:
通过命令npm init -y 在项目文件夹下初始化项目,得到package.json包配置文件
2、配置cors跨域:npm i cors
const cors = require('cors')
//配置cors中间件,解决跨域问题
app.use(cors())
3、配置解析表单数据的中间件
//配置解析表单数据的中间件,注意这个中间件只能解析application/x-www-form-urlcode格式的数据
app.use(express.urlencoded({ extended: false }))
4、初始化路由相关的文件夹:
一般在项目文件夹下,新建文件夹:router,根据对应的业务逻辑创建不同的路由文件,例如用户相关,则创建user.js文件
const express = require('express')
//创建路由对象
const router = express.Router()
//导入用户路由处理函数对应的模块
const userHandler = require('../router_hander/user')
//注册新用户
router.post('/reguser', userHandler.regUser)
//登录
router.post('/login', userHandler.login)
//将路由模块共享出去
module.exports = router
5、 初始化路由模块:
//创建路由对象
const router = express.Router()
//导入用户路由处理函数对应的模块
const userHandler = require('../router_hander/user')
//注册新用户
router.post('/reguser', userHandler.regUser)
//登录
router.post('/login', userHandler.login)
6、抽离用户路由模块的处理函数:
//定义和用户相关的路由处理函数,目的是抽离出来,方便统一管理
//导入数据库模块
const db = require('../db/index')
exports.regUser = (req, res) => {
const regUserInfo = req.body
if (!regUserInfo.username || !regUserInfo.password) {
res.send('用户名或密码不能为空')
}
//定义sql语句,查询用户名是否已经存在
const sqlStr = 'select * from ev_user where username=?'
db.query(sqlStr, regUserInfo.username, (err, results) => {
if (err) {
return res.send({
status: 1,
message: err.message
})
}
if (results.length > 0) {
return res.send({
status: 1,
message: '用户名已被占用,请更换其他用户名'
})
}
//用户名可以使用,此时就需要对密码加密
})
res.send('注册成功')
}
exports.login = (req, res) => {
res.send('登录成功')
}