node.js - 在 GraphQL Schema 中定义 map 对象的最佳方式?

标签 node.js typescript graphql nestjs

我尝试用对象数组映射一个键字符串。

我可以创建一个简单的对象,但我想在这些数组中轻松添加一个对象。 map 对象非常适合执行此操作。

问题:我不知道如何为 GraphQL 定义类型映射:'(

@ObjectType()
export class Inventaire
  @Field()
  _id: string;

 @Field()
  stocks: Map<string, Article[]>;
}

最佳答案

GraphQL 不提供任何开箱即用的 map 类型。键值对的 JSON blob 没有强大的模式,所以你不能有这样的东西:

{
    key1: val1,
    key2: val2,
    key3: val3,
    ...
}

但是,您可以将 GraphQL 模式定义为具有键值元组类型,然后定义您的属性以返回这些元组的数组。

type articleMapTuple {
     key: String
     value: Article
}

type Inventaire {
     stocks: [articleMapTuple]
}

然后你的返回类型看起来像这样:

    data [
    {
        key: foo1,
        value: { some Article Object}
    },
    {
        key: foo2,
        value: { some Article Object}
    },
    {
        key: foo3,
        value: { some Article Object}
    },
]

关于node.js - 在 GraphQL Schema 中定义 map 对象的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56705157/

相关文章:

node.js - Express js 将 header 编码为 utf-8

node.js - Node - Passport-http 如果失败如何返回 json 响应

reactjs - 如何将 graphQL 查询变量传递到装饰的 React 组件中

amazon-web-services - AWS Appsync 订阅未更新我的组件

ruby-on-rails - 如何覆盖关于复数表和蛇形列的 rails 配置

javascript - 如何处理异步循环函数中的await调用-nodejs

mysql - 将 JSON 数据存储在 MySQL 表中

node.js 使用数组对事务进行 Sequelize 进行查询

java - 保持 spring boot 和 Angular 应用程序之间的模型同步。备择方案?

node.js - 如何将我的 Typescript Node.js 应用程序部署到 Heroku?