Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在Sequelize ORM中限制连接行(多对多关联)?_Javascript_Node.js_Sequelize.js - Fatal编程技术网

Javascript 如何在Sequelize ORM中限制连接行(多对多关联)?

Javascript 如何在Sequelize ORM中限制连接行(多对多关联)?,javascript,node.js,sequelize.js,Javascript,Node.js,Sequelize.js,Sequelize定义了两个模型:Post和具有多对多关联的标记 Post.belongsToMany(db.Tag, {through: 'post_tag', foreignKey: 'post_id', timestamps: false}); Tag.belongsToMany(db.Post, {through: 'post_tag', foreignKey: 'tag_id',timestamps: false}); 在“标签”页面上,我想获取标签数据、相关帖子,并用分页方式显示它

Sequelize定义了两个模型:Post和具有多对多关联的标记

Post.belongsToMany(db.Tag, {through: 'post_tag', foreignKey: 'post_id', timestamps: false});
Tag.belongsToMany(db.Post, {through: 'post_tag', foreignKey: 'tag_id',timestamps: false});
在“标签”页面上,我想获取标签数据、相关帖子,并用分页方式显示它们。所以我应该限制帖子。但如果我试着把它们限制在“包含”之内

我发现以下错误:

Unhandled rejection Error: Only HasMany associations support include.separate
如果我尝试切换到“HasMany”关联,我会得到以下错误

Error: N:M associations are not supported with hasMany. Use belongsToMany instead

从另一方面来看,文档称限制选项“仅支持include.separate=true”。如何解决这个问题?

这里有同样的问题。从我收集的信息来看,要使用limit/offset,您需要include.separate,它还不支持belongTomany关联,因此在撰写本文时您尝试的操作不受支持

已经有人在做了,你可以追踪
.

我知道这个问题由来已久,但对于那些仍在经历这个问题的人来说,有一个简单的解决方法

由于Sequelize添加到关联模型的实例中,因此您可以将代码重组为如下内容:

const tag = await Tag.findOne({ where: { url: req.params.url } });
const tagPosts = await tag.getPosts({ limit: 10 });

这将与代码的工作方式完全相同,但可能存在限制和偏移。

该页面不起作用
const tag = await Tag.findOne({ where: { url: req.params.url } });
const tagPosts = await tag.getPosts({ limit: 10 });