一、项目环境搭建
首先在cmd终端全局安装express脚手架 npm install -g express-generator,成功之后使用 express -e 项目名创建项目,此时,系统会自动生成项目目录,如果脚手架安装不成功,可以新建文件夹,在终端输入命令npx --yes --package express-generator express --force --no-view也可生成目录。
二、目录文件作用分析
1、创建service文件夹,此文件夹存放操作数据库的sql语句,例如:
async findByTitle(title) {
const statement = `select id, title, icon, href, pid, tps, sts from menus where title = ?`
let [rows] = await db.query(statement, [title])
return rows
}
service文件夹下有一个base.js文件,存放公共函数,其他业务service模块可以继承base.js(要导入连接数据库的文件)模块中的公共函数,每个特有的业务模块都有一个独特的.service.js文件,在此文件最后需要module.exports的导出中添加表名和表中的参数名,参数名以数组的形式返回。
2、routes文件夹下除了一个公共使用的db.js的文件,其它均为每个业务的路由模块(CRUD操作)
3、最终在入口文件app.js中挂载每个业务路由模块
三、公共文件处理
1、routes文件夹下
db.js文件
const mysql=require('mysql2')
const {mysql_conf}=require('../config/global.json')
const pool=mysql.createPool({
host: mysql_conf.host,
user: mysql_conf.user,
password: mysql_conf.password,
database: mysql_conf.database,
waitForConnections: mysql_conf.waitForConnections,
connectionLimit: mysql_conf.connectionLimit,
queueLimit: mysql_conf.queueLimit
})
module.exports=pool.promise()
2、新建config文件夹
global.json文件--存放连库语句
{
"mysql_conf": {
"host": "localhost",
"port": 3306,
"user": "root",
"password": "自己的数据库密码",
"database": "bz2107_0601",
"waitForConnections": true,
"connectionLimit": 10,
"queueLimit": 0
}
}
errMsg.js文件--公共状态码语句
class ErrMsg{
toJson(code,msg,data){
return{code,msg,data}
}
// 成功则响应数据
resp200(data){
return this.toJson(200,'ok',data)
}
// 失败返回空值
resp700(){
return this.toJson(700,'系统繁忙',[])
}
resp701(){
return this.toJson(701,'该名称已存在',[])
}
resp601(){
return this.toJson(601,'缺少关键参数',[])
}
resptoxx(code,msg,data){
return this.toJson(code,msg,data)
}
}
module.exports= new ErrMsg()