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