说明
Express
基于 Node.js 平台,快速、开放、极简的 Web 开发框架,参考,地址:https://www.expressjs.com.cn/
Sequelize框架
Node.js的ORM框架,是一个很成熟的框架,在速度和性能上也非常有优势。而其中最关键的地方就在于,日常开发只需要管理对象的创建、查询方法的调用等。支持的数据库包括:PostgreSQL、 MySQL、MariaDB、 SQLite和MSSQL。
Sequelize特点:1、强大的模型定义,支持虚拟类型。2、支持完善的数据验证,减轻前后端的验证压力。3、Sequelize的查询非常全面和灵活。
地址:https://github.com/sequelize/cli
项目代码
项目结构
──项目
│ .gitignore
│ app.js
│ package.json
│
├─config
│ db.js
│
├─dao
│ userDao.js
│
├─model
│ userModel.js
│
├─routes
│ userRoute.js
│
└─service
userService.js
package.json
"dependencies": {
"express": "^4.17.1",
"mysql": "^2.18.1",
"mysql2": "^2.2.5",
"sequelize": "^6.6.2"
},
app.js
const express = require('express');
const app = new express();
// 路由
const userRoute = require('./routes/userRoute');
app.use('/', userRoute);
// 服务端口
const port = 3000;
app.listen(port, () => console.log('服务' + port + '已启动'));
routes/userRoute.js
const express = require('express');
const router = express.Router();
const {
getUserListService,
} = require('../service/userService');
// 列表接口1
router.get('/userList', async (req, res) => {
let userList = await getUserListService();
res.send(userList)
});
module.exports = router;
service/userService.js
const {
getUserListDao,
} = require('../dao/userDao');
const userService = {
// 获取列表1
getUserListService: async () => {
let userList = await getUserListDao();
return userList;
},
}
module.exports = userService;
dao/userDao.js
const userModel = require('../model/userModel');
const userDao = {
// 获取列表
getUserListDao: async () => {
let userList = await userModel.findAll();
return userList;
},
};
module.exports = userDao;
model/userModel.js
const Sequelize = require('sequelize');
const db = require('../config/db');
// 创建model
let userModel = db.define('system_user', {
username: {
type: Sequelize.STRING,
field: 'username'
},
sex: {
type: Sequelize.STRING,
field: 'sex'
},
age: {
type: Sequelize.INTEGER,
field: 'age'
},
city: {
type: Sequelize.STRING,
field: 'city'
},
job: {
type: Sequelize.STRING,
field: 'job'
}
});
module.exports = userModel;
config/db.js
const Sequelize = require('sequelize');
//
const db = new Sequelize('health_business_demo', 'root', 'root1234', {
host: '132.232.30.6',
dialect: 'mysql',
pool: {
max: 5,
min: 1,
idle: 10000,
},
dialectOptions: {
chartset: 'utf8mb4'
},
define: {
freezeTableName: true, // 自定义表面,不设置会自动将表名转为复数形式
timestamps: true // 自动生成更新时间、创建时间字段:updatedAt,createdAt
}
})
db.authenticate().then(() => {
console.log('mysql连接成功');
}).catch(err => {
console.log('mysql连接失败:' + err);
})
module.exports = db;