Я использую настройку в "build app" руководства по началу работы, хотя и немного измененную с точки зрения структуры каталогов.
При попытке выполнить базовый запрос кдетская площадка graphql-yoga на localhost: 4444.
Вы можете видеть, что status
определено на схеме, так почему же это не работает?
У меня даже тяжелые временавставка данных на локальный хост: 4466 / _admin, и прямо вверх не может вставить данные, если это не сделано с помощью автоматически генерируемой мутации сценария const testing = await prisma.createcnStatus({ ticker: 'XXX' })
, которая отлично работает.
Запрос
query {
status {
ticker
}
}
Ошибка
"data": {
"status": null
},
"errors": [
{
"message": "ctx.prisma.status is not a function",
"locations": [
{
"line": 2,
"column": 3
}
],
"path": [
"status"
]
}
]
}
app.js
require('./lib/main')
/lib/main.js
const { prisma } = require('./generated/prisma-client')
const { GraphQLServer, PubSub } = require('graphql-yoga')
const resolvers = require('./resolver')
const fs = require('fs')
const pubsub = new PubSub()
const server = new GraphQLServer({
typeDefs: './lib/schema.graphql',
resolvers,
context: {
prisma,
pubsub
}
})
let port = 4444
server.start({
port: port,
},
() => console.log('Server is running on http://localhost:' + port)
)
/lib/resolver.js
const resolvers = {
Query: {
status(parent, args, ctx, info) {
return ctx.prisma.status()
}
}
}
module.exports = resolvers
/lib/schema.graphql
type Query {
status: [cnStatus]
}
type cnStatus {
ticker: String
}
datamodel.prisma
type cnStatus {
id: ID! @id
ticker: String
}