Egg 使用 Sequelize
2019-08-15 09:55
2006 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/yzwdzkn/article/details/99621891
1.安装sequelize依赖和mysql驱动
cnpm i egg-sequelize mysql2 -save
2.在config/plugin.js 下启用sequelize插件
sequelize:{ enable:true, package:'egg-sequelize' }
3.在 config/config.default.js 配置数据库
config.sequelize = { dialect: 'mysql', // support: mysql, mariadb, postgres, mssql database: 'test', //数据库名 host: '127.0.0.1', port: '3306', username: 'root', //账号 password: '123456', //密码 timezone: '+08:00', // 保存为本地时区,mysql保存时会自动保存为UTC格式 dialectOptions: { dateStrings: true, typeCast(field, next) { if (field.type === "DATETIME") { return field.string(); } return next(); } } };
4.定义model , 在app/model 目录 下新建一个文件 test.js
module.exports = app => { const { STRING,INTEGER,DATE} = app.Sequelize; const Test = app.model.define('test', { id: { type: INTEGER, primaryKey: true }, name:{ type: STRING(50) }, status:{ type: INTEGER }, create_time:{ type: DATE } }, { freezeTableName: true, // Model 对应的表名将与model名相同 timestamps: false, } ); Test.associate = function() { app.model.Test.hasMany(app.model.Test2, {foreignKey:'id',sourceKey:'test_id' });//一对多 app.model.Test.belongsTo(app.model.Test3, {foreignKey:'id',targetKey:'test_id' }); //一对一 }; return Test ; };
5.操作符
const Op = Sequelize.Op [Op.and]: {a: 5} // 且 (a = 5) [Op.or]: [{a: 5}, {a: 6}] // (a = 5 或 a = 6) [Op.gt]: 6, // id > 6 [Op.gte]: 6, // id >= 6 [Op.lt]: 10, // id < 10 [Op.lte]: 10, // id <= 10 [Op.ne]: 20, // id != 20 [Op.eq]: 3, // = 3 [Op.not]: true, // 不是 TRUE [Op.between]: [6, 10], // 在 6 和 10 之间 [Op.notBetween]: [11, 15], // 不在 11 和 15 之间 [Op.in]: [1, 2], // 在 [1, 2] 之中 [Op.notIn]: [1, 2], // 不在 [1, 2] 之中 [Op.like]: '%hat', // 包含 '%hat' [Op.notLike]: '%hat' // 不包含 '%hat' [Op.iLike]: '%hat' // 包含 '%hat' (不区分大小写) (仅限 PG) [Op.notILike]: '%hat' // 不包含 '%hat' (仅限 PG) [Op.startsWith]: 'hat' // 类似 'hat%' [Op.endsWith]: 'hat' // 类似 '%hat' [Op.substring]: 'hat' // 类似 '%hat%' [Op.regexp]: '^[h|a|t]' // 匹配正则表达式/~ '^[h|a|t]' (仅限 MySQL/PG) [Op.notRegexp]: '^[h|a|t]' // 不匹配正则表达式/!~ '^[h|a|t]' (仅限 MySQL/PG) [Op.iRegexp]: '^[h|a|t]' // ~* '^[h|a|t]' (仅限 PG) [Op.notIRegexp]: '^[h|a|t]' // !~* '^[h|a|t]' (仅限 PG) [Op.like]: { [Op.any]: ['cat', 'hat']} // 包含任何数组['cat', 'hat'] - 同样适用于 iLike 和 notLike [Op.overlap]: [1, 2] // && [1, 2] (PG数组重叠运算符) [Op.contains]: [1, 2] // @> [1, 2] (PG数组包含运算符) [Op.contained]: [1, 2] // <@ [1, 2] (PG数组包含于运算符) [Op.any]: [2,3] // 任何数组[2, 3]::INTEGER (仅限PG)
相关文章推荐
- eggjs&sequelize使用教程一(环境搭建)
- eggjs&sequelize使用教程一(表单自动验证)
- qr-image 在 Egg.js 中的使用
- Node.js使用Sequelize操作MySQL
- egg.js中使用egg-mysql操作mysql数据库
- sequelize-typescript使用的一些坑
- egg结合sequelize--模型定义中去除 createAt、updateAt字段,驼峰
- egg.js 中cookie的使用
- sequelize常见操作使用方法(增删改查,手把手教学)
- python在windows下使用setuptools安装egg文件
- python在windows下使用setuptools安装egg文件
- Egg中使用egg-mongoose和常用的Mongoose 方法
- Egg 中使用 Mongoose 以及 Egg 中的 model
- egg使用模板引擎 ejs
- node 使用 sequelize 操作数据库不完全指北
- node.js——sequelize-auto模块生成数据库models及使用
- 《node.js开发指南》微博系统 4.x版 2016年最新实现方法(基于mysql,使用sequelize)
- 在node.js中,使用基于ORM架构的Sequelize,操作mysql数据库之增删改查
- sequelize-auto简易使用--封装一个端口
- egg.js的基本使用和调用数据库的方法示例