Tel*_*tos 5 postgresql node.js graphql
我无法让GraphQL识别JSON标量类型.
我按照[apollo docs](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,
...
]
Run Code Online (Sandbox Code Playgroud)
测试类型:
const Test = `
type Test {
bodyJson: JSON
}`
Run Code Online (Sandbox Code Playgroud)
解析器:
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
...
}
Run Code Online (Sandbox Code Playgroud)
我正在使用PostgreSQL,我要查询的列(body_json)是数据类型jsonb.
如果我通过GraphiQL测试我的模式,当我直接从db返回值(我使用Knex查询)时,我从GraphQL收到此错误消息:
期望值类型为"JSON"但收到:[object Object]
如果我首先在返回的值上使用JSON.stringify,我会收到此错误:
"期望值类型为"JSON",但收到:{\"key \":\"test \"}"
关于我可能做错什么的任何建议?
我无法获得使用基于文本的模式的自定义标量(使用buildSchema('...')核心“graphql”库),但当我从头开始以编程方式构建模式时(使用new GraphQLSchema(...)),它可以工作。
| 归档时间: |
|
| 查看次数: |
3921 次 |
| 最近记录: |