我無法讓GraphQL識別JSON標量類型。如何在GraphQl中使用graphql-type-json包
我跟着[阿波羅文檔](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 \」但收到:[對象的對象]
如果我使用JSON.stringify先上返回的值,我得到這個錯誤:
JSON \「預期類型\的價值」,「但收到:{\」鍵\「:\」test \「}」
任何關於我可能在做什麼的建議錯了嗎?
好的,我會研究一下。謝謝。如果我有任何問題,我會在這裏更新。 – Telitos