芯が強い人になるESTJ-A

# sequelize(ORM)

IT開発 Tags: 无标签 阅读: 208

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:migrate

readme.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启动成功')
})