Express: 最受欢迎的node后台服务框架,简洁灵活,轻量级
Sequelize:orm(对象映射框架),支持 Postgres, MySQL, MariaDB, SQLite 以及 Microsoft SQL Server. 它具有强大的事务支持, 关联关系, 预读和延迟加载,读取复制等功能
使用脚手架创建express架构的node服务并集成sequelize
一,使用express创建项目
- 全局安装express中间件
npm install express -g
- 进入项目目录初始化
npm init -y
- 使用express命令生成项目目录
express
- 安装项目依赖
npm install
- 使用nodemon工具热更新,以便改动代码时自动热部署
全局安装 npm install -g nodemon
本地安装 npm install nodemon --save
启动脚本前加入nodemon命令
如此便完成了项目的创建,接口在routes目录下
创建接口示例文件users.js:
其中接口回调的三参数
req: 接口请求体 可通过req.query获取url参数,通过req.body获取请求体参数
res: 接口响应体 可通过res.send(data) 响应数据回前端
next: 请求调用回调
在app.js中引用接口
启动项目: npm start
项目运行端口设置如下:
浏览器访问:http://localhost:3000/users/getAll
二,集成sequelize连接mysql数据库,创建并管理模型对象
- 安装sequelize,脚手架依赖及mysql驱动依赖
npm install sequelize --save
npm install -g sequelize-cli
npm install mysql2 --save
- 创建数据库访问层文件
命令:npx sequelize init 此命令创建如下文件夹
Config: 数据库配置文件
Models: 数据模型对象配置文件 sequelize据此动态生成sql执行查询
Migrations: 数据库迁移文件 可根据此文件使用npx sequelize db:migrate 命令初始化数据库表
Seeders: 包含所有种子文件
- 修改config/config.json下数据库连接配置
- 创建数据库: npx sequelize db:create
- 创建数据模型使用如下命令:
npx sequelize model:generate --name User --attributes username:string,gender:string,age:string
--name: 指定模型名称,sequelize默认表名为模型名复数形式,也可配置为同名参考sequelize文档
--attributes: 指定模型属性
上述命令生成models模型文件及migrations数据库迁移文件
- 初始化数据库表: npx sequelize db:migrate
- 使用npx sequelize seed:generate --name demo-user 生成种子文件用于生成示例数据
--name: 指定种子文件名称
修改生成的XXXXXXXXXXXXXX-demo-user.js文件例如:
种子文件修改好后可使用npx sequelize db:seed:all 命令将示例数据插入数据库
如此便建立好了数据库持久层,下面介绍如何在接口调用持久层操作数据库
三, express接口调用sequelize持久层操作数据库
- 在步骤‘一,’接口示例文件routes/users.js中引入sequelize创建的模型
var model = require('../models')
可使用 model.user调用user对象
Sequelize创建的模型对象已经内置好了增删查改方法,直接调用方法就可以操作数据库对应的表
model.user.findAll()
model.user.destroy()
model.user.update()
model.user.create()
请求体中获取的参数可以灵活传入持久层,参考sequelize模型查询相关部分学习规则
https://www.sequelize.com.cn/core-concepts/model-querying-basics
示例如下:
使用同步格式改写异步执行的请求:
以上便完成了基础的node + express + sequelize + mysql的后台服务架构