【发布时间】:2021-02-02 19:10:01
【问题描述】:
我知道您可以将架构中的参数设置为默认值,但是否可以在我的 GraphQL 架构中将 limit 参数设为完全可选?
现在看来,当我在没有指定限制的情况下点击它时,我认为这就是我得到Int cannot represent non-integer value: undefined的原因
const schema = buildSchema(`
companies(limit: Int): [Company]
...)
我希望能够跳过限制,以便获得所有公司。
在 JS 中,我这样称呼它:
query: `query {
companies(limit: ${limit}) {
...
但有时我不想指定限制。所以发生的事情是客户端正在发送crafters(limit: undefined),它可能正试图将其转换为 Int。我不确定如何不发送limit 以及如何使整个参数成为可选。
(我还从 client 读到过,我应该将参数指定为 variables,例如 query($limit: Int) { companies(limit: $limit) { 我猜来自我的 client ,来自 JS?如果是这样,我将如何将我的限制 JS 变量 发送到其中?
【问题讨论】:
-
像这样指定一个默认值 - graphql.org/learn/schema/#arguments
-
但如果它是可选的,我为什么要默认。我只是说我知道你可以设置默认值,但我不想指定默认值。如果没有指定
limit,则没有我想要的默认值。这是针对我的数据库查询的,如果他们没有指定限制,那么我也不希望在我的数据库查询中使用该限制。所以指定一个整数不是我想要的。如果是限制的情况,我必须指定为 0,然后在 DB JS 代码级别检查是否为 0 > -
抱歉,我只是在没有深入理解您的问题的情况下发送了垃圾邮件链接。以我的经验,我有太多数据不能通过至少某种上限限制,并且总是将默认值指定为安全网。 GL w/你的实现
标签: javascript graphql