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,如果你想得到删除的数据,只能先查再删
上一篇:
通过多线程提高代码的执行效率例子
下一篇: