【发布时间】:2018-10-18 08:15:40
【问题描述】:
我正在尝试使用 graphql,并使用 graphql-yoga 创建了一个简单的服务器。我的 Mongoose 产品模型查询我的数据库,两个解析器都按预期返回数据。到目前为止,一切正常,我很高兴这很容易。但是,我有一个问题。我正在尝试添加一种方法来对来自 graphQL 的结果进行分页。
我尝试了什么?
1) 向查询类型添加限制参数。
2) 在resolver中通过args访问参数
预期行为
我可以在解析器中使用 args.limit 参数并使用它来更改 Mongoose 函数
实际行为
我无法读取 arg 对象。
下面的完整代码。我如何达到这个目标?
import { GraphQLServer } from 'graphql-yoga'
import mongoose from "mongoose"
import {products} from "./models/products.js"
const connection = mongoose.connect('mongodb://myDB')
const prepare = (o) => {
o._id = o._id.toString()
return o
}
const typeDefs = `
type Product {
_id: String
name: String
description: String
main_image: String
images: [String]
}
type Query {
product(_id: String): Product
products(limit: Int): [Product]
}
`
const resolvers = {
Query: {
product: async (_id) => {
return (await products.findOne(_id))
},
products: async (args) => {
console.log(args.name)
return (await products.find({}).limit(args.limit))
},
},
}
const server = new GraphQLServer({
typeDefs,
resolvers
})
server.start(() => console.log('Server is running on localhost:4000'))
【问题讨论】: