我正在尝试创建通过我的数据分页的功能,但我不确定在哪里需要放置分页变量。
以下是我的架构中的内容:
merge
在我的args中,我已经创建了变量 offset 和 first 以便能够使用它们。在我的 graphiQL 界面中,我可以这样做:
const Query = new GraphQLObjectType({
name: 'Query',
description: 'This is a root Query',
fields: () => {
return {
allPosts: {
type: new GraphQLList(Post),
args: {
offset: {
type: GraphQLInt
},
first: {
type: GraphQLInt
}
},
resolve(root, args) {
return Db.models.post.findAll({where: args});
}
}
};
}
});
它正确检索了我的所有帖子。但是,如果我尝试这样做:
{
allPosts() {
id
}
}
“message”:“'where子句'中的未知列'post.offset'”,
答案 0 :(得分:1)
在Sequelize中,offset
是where
的单独选项。 Sequelize也没有first
选项,但确实有limit
。你可以这样做:
resolve(root, { offset, first: limit }) {
return Db.models.post.findAll({offset, limit});
}
您可以查看文档here,查看findAll
支持的所有选项。
答案 1 :(得分:0)
我会非常小心地将args直接传递到你的数据库中,但为了清楚起见,我应该说GraphQL不会为你做分页。你可以传递像你一样的args,但是这里没有正确的答案关于放置它们或如何使用它们,因为每个人都以他们的方式获取数据。