Sequelizejs框架学习(待更新)

model

如果你不想使用sql语句,那么你需要建立模型

model可以方便数据校验,数据关联等

可以用一下快捷命令创建model

sequelize-auto  -h ip -d 库名 -u 用户名 -x 密码 -p 端口号  -o 生成模型的路径 -t 表名

注意sequelize-auto要全局安装(npm i sequelize-auto -g)

model组件格式:

const { DataTypes } = require("sequelize");
const sequelize = require("../mysql");
const myModel = sequelize.define(roadsection, {
    id: {
      autoIncrement: true,
      type: DataTypes.INTEGER,
      allowNull: false,
      primaryKey: true
    },
    ...
});
module.exports = myModel

sequlize函数

基础语句:

// 插入语句
model.create({...})     
   
// 查询语句
// 如果全查就不要attributes
model.findAll({attributes: [a, b]})
//也可以使用聚合函数
attributes: [
    a,
    [sequelize.fn(COUNT, sequelize.col(c)), n_c],
    b
  ]            
// 也可以使用includes(这个表示全选还要加上includes的)和excludes(全选去掉excludes的)

// 更新语句
model.update({},{where:{xxx:xxx}})

// 删除语句
model.destroy({where:{xxx:xxx}})
// 如果要全删
model.destroy({
  truncate: true
});

// 批量创建
model.bulkCreate([
  {},
  {}
]);

findOrCreate

const [record, created] = await model.findOrCreate({
			where: { 
                // 查询条件
             },
			defaults: {
				// 如果没有查到,则要插入的数据
			}
		});
// created是true说明没查到,新增了一条,record表示这条的数据
// record可以直接.update({更新后的数据})

异步的.then()

findAll有.then,里面的回调函数的参数是查询到的结果 注意:不是所有的语句都有result返回,比如destroy,如果你想得到删除的数据,只能先查再删

经验分享 程序员 微信小程序 职场和发展