javascript - 在解析器之间共享数据
问题描述
任何人都可以帮助我在graphql中的不同解析器之间共享数据的方式。一种方法是使用上下文,但在网络的许多地方都提到避免改变上下文。
即例如我有一个架构如下
type Person{
ID:Int
Name: String
Age: String
address: Address
}
type Address{
address-line1: String
address-line2: String
City: String
Country: String
Pincode:String
}
type Query{
GetpersonbyID(id: int):Person
GetPersons: [Person]
}
现在,例如,要从根解析器向解析器传递一些附加信息,目前我正在使用上下文。这是正确的方法还是有更好的方法来实现这一点。
解决方案
您可以在根解析器中返回必要的信息:
const resolvers = {
Query: {
getPersonById: (root, args) => {
const person = await getPerson(args.id)
person.address = {
foo: 'bar',
}
return person
},
},
Address: {
addressLine1: (address) => {
console.log(address) // { foo: 'bar' }
},
},
}
推荐阅读
- java - 不能同时选择上下文和依赖注入 (CDI) 1.2 和 Dynamic Web Module 3.0?
- assembly - 在哪里可以找到 ARM 处理器指令的概述?
- javascript - React 功能组件不会随着值的变化而改变
- spring-boot - 我应该选择哪些平台来为我的微服务端项目安装一些环境?
- java - TypeError:“JavaPackage”对象不可调用 AWS Glue Pyspark
- typescript - 如何在 TypeScript 类方法中有条件地提示布尔返回类型?
- c++ - 以递归方式附加到 .csv 文件
- binary-search-tree - BST 预排序非递归 - 堆栈上有什么?
- unit-testing - 使用 ApplicationProiver 进行 Android Java 单元测试
- wordpress - Wordpress docker 容器到 Azure 管道?