Sequelize.js 是 Node.js ORM(Object-Relational-Mapper)框架,提供对 MySQL,MariaDB,SQLite 和 PostgreSQL 数据库的简单访问,通过映射数据库条目到对象,或者对象到数据库条目。
nodejs--application--ORM(sequelize)--驱动nodejs,mysql2--mysql db
在 Node.js 中集成 Sequelize
# 安装 Node.js mysql 驱动
npm install mysql2 --save
npm install sequelize --save
npm install sequelize-cli --save-dev
# 初始化目录结构
npx sequelize-cli init
# 创建表模型
npx sequelize-cli model:generate --name User --attributes firstName:string,lastName:string,email:string
# 在数据库中实际创建该表
npx sequelize-cli db:migratereadme.md
//api,app.js
1.根据客户端传递过来的,不同参数(状态/页码),查询,任务列表
2实现,新增一个任务的功能,名称,截止日期,内容
3实现一个,编辑功能,根据客户端传递的任务对象(已有数据),实现编辑(名称/截止日期,内容,id)
4删除任务,通过id
5修改任务状态,通过,id/状态,代办/完成
//api,具体实现
##数据库初始化
1创建一个数据库
2使用sequelize cli初始化,项目的数据库配置信息,使用命令:npx sequelize init
3生成模型文件,1migrate文件2model文件.
使用命令:npx sequelize model:generate --name Todo --attributes name:string,deadline:date,content:string
4把表,扔到数据库去.持久化,模型对应的数据库表
使用命令:npx sequelize db:migrate
##API里面具体使用ORM模型
案例代码
const express = require('express');
const app = express();//一个express实例
const memberRouter = require('./member.router');
const skuRouter = require('./sku.router');
const models = require('../models');//模型对象
//注册路由
app.use('/member',memberRouter)//member/list
app.use('/sku',skuRouter)//sku/list
//创建用户
app.get('/create',async (req,res)=>{
let {name} = req.query;
//改方法返回一个promise,此处user是一个具备sequlize对象
let user = await models.User.create({
name
})
console.log(user);
res.json({
message:'创建成功',
user
})
})
//获取用户list
app.get('/list',async (req,res)=>{
let list = await models.User.findAll();
res.json({
list
})
})
//通过id查用户
app.get('/detail/:id', async (req,res)=>{
let {id}= req.params;
let user = await models.User.findOne({
where:{id}
})
res.json({
user
})
})
//任何都响应,app.all拿到uri的path
// app.all('*',(req,res)=>{
// res.json({
// message: 'from use demo',
// method:req.method,
// uri:req.path
// })
// })
// app.use((req,res)=>{
// res.json({
// message: 'from use demo'
// })
// })
app.listen(3000,()=>{
console.log('server启动成功')
})