前言
主包近期在使用Sequelize进行连表查询时,发现涉及到分页查询+模糊查询+联表查询时会出现SQL语句报错,Sequelize无法识别到关联表的情况。(有时Sequelize的ORM工具甚至不如手写SQL好使)
但涉及到模糊匹配 如果直接使用字符串拼接SQL语句的话会有安全风险,所以主包研究了对应的解决方案。
本文设计的技术栈:
- node+express+ES6语法
- sequelize ORM工具
1 模型与业务梳理
这里我拿较为简单的两个模型举例,方便大家理解
- 文章模型(Article)----多个文章属于一个分类 多对一
- 文章分类模型(Category)----一个分类对应多个文章 一对多
业务逻辑:
- 当查询分类列表时,附带所属该分类的文章数量
2 模型关联
在进行业务的编写时,需要先对两个模型进行关联绑定,这里我不再对数据库迁移和模型文件进行编写,直接对模型进行关联。
- 文章分类模型
//文章分类模型
static associate(models) {
// 一个分类对应多个文章
models.Category.hasMany(models.Article, {
foreignKey: 'categoryId', // 对应 Article 表中的外键字段
as: 'articles', // 别名
})
}
- 文章模型
//文章模型
static associate(models) {

最低0.47元/天 解锁文章
1817

被折叠的 条评论
为什么被折叠?



