【发布时间】:2018-11-19 07:19:41
【问题描述】:
好的,所以我已经与 Prisma 合作了几个星期,并且取得了一些很大的进步,我喜欢实现许多高级功能的设置/易用性。
我正在尝试对表字段进行排序。
我可以选择(在其他字段中)按term_ASC 和term_DESC 排序。
假设以下查询定义:MyConnection(filter: String, order: MyOrderByInput, limit: Int, offset: Int): MyConnection!
如果我在 GraphQL Playground 中运行以下代码,它可以正常工作:
query myPaginatedResults {
myConnection(filter: "lorem", limit: 25, offset: 0, order: term_ASC) {
aggregate {
count
}
edges {
node {
id
term
}
}
}
}
要点/问题... term_ASC/DESC 的用法在 Playground 中有效,但如何在我的 JS 中传递它?
如果我将它用引号“term_ASC”括起来,则会出现错误,如果它没有被包装,那么它(解析器/api)会抛出关于明显未定义变量的错误。
const myConnection = (parent, args, context, info) => {
const where = args.filter
? {
OR: [
{ term_contains: args.filter },
{ type_contains: args.filter },
{ id_in: args.filter },
],
} : {}
const order = args.order;
// const order = `title_ASC`;
const skip = args.offset ? args.offset : 0;
const limit = args.limit ? args.limit : 50;
// console.log(context.db.query);
const results = context.db.query.myDbConnection({
where,
orderBy: order,
first: limit,
skip: skip,
}, info);
return results;
}
所以我试图测试如何通过变量(硬编码,在此示例中注释掉)或在通过我的 args.order 传递到解析器之前测试如何传递这个 orderBy 变量的部分,我想不通应该如何通过。
【问题讨论】:
标签: graphcool prisma prisma-graphql