gpt4 book ai didi

node.js - 如何在 GraphQl 中使用 graphql-type-json 包

转载 作者:搜寻专家 更新时间:2023-10-31 22:49:26 26 4
gpt4 key购买 nike

我无法让 GraphQL 识别 JSON 标量类型。

我按照 [apollo 文档] ( http://dev.apollodata.com/tools/graphql-tools/scalars.html#Using-a-package ) 为我的模式定义了一个 JSON GraphQL 标量类型:

架构:

const SchemaDefinition = `
scalar JSON
schema {
query: Query
mutation: Mutation
}
`

export default [
SchemaDefinition,
Query,
Mutation,
...
]

测试类型:

const Test = `
type Test {
bodyJson: JSON
}`

解析器:

import GraphQLJSON from 'graphql-type-json'

const QueryResolver = {
Query: {
viewer(root, args, ctx) {
return User.query()
.where('id', ctx.state.user)
.first()
}
}
}

const scalarJSON = {
JSON: GraphQLJSON
}

export default {
...QueryResolver,
...ViewerResolver,
...scalarJSON
...
}

我正在使用 PostgreSQL,我正在查询的列 (body_json) 的数据类型为 jsonb。

如果我通过 GraphiQL 测试我的架构,当我直接从数据库返回值时(我使用 Knex 进行查询),我从 GraphQL 收到此错误消息:

需要一个\"JSON\"类型的值,但收到:[object Object]

如果我首先对返回值使用 JSON.stringify,则会出现此错误:

“预期类型为\"JSON\"的值但收到:{\"key\":\"test\"}"

关于我可能做错了什么有什么建议吗?

最佳答案

我在解析器中解析了这样的自定义标量 JSON

 JSON: {

__serialize(value) {
return GraphQLJSON.parseValue(value);
} }

它对我来说效果很好。我想这对你有帮助

关于node.js - 如何在 GraphQl 中使用 graphql-type-json 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42353161/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com