我正在使用入门指南的“构建应用”中的设置,尽管在目录结构方面进行了一些修改。
尝试在localhost:4444上对graphql-yoga操场运行基本查询时,我收到以下错误。
您会看到status
是在模式上定义的,那么为什么它不起作用?
我什至很难在localhost: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
}
答案 0 :(得分:0)
Prisma将根据您提供的数据模型为CRUD操作生成客户端。
由于它是根据类型的名称生成的,因此应该类似于:
user_friends
答案 1 :(得分:0)
此处应为ctx.prisma.cnStatus()
const resolvers = {
Query: {
status(parent, args, ctx, info) {
return ctx.prisma.status()
}
}
}
并且您需要在模式中使用数组,但在查询解析器中返回实例
type Query {
status: [cnStatus]
}