`ctx.prisma.status is not a function` 错误,即使它已定义

Posted

技术标签:

【中文标题】`ctx.prisma.status is not a function` 错误,即使它已定义【英文标题】:`ctx.prisma.status is not a function` error, even though it's defined 【发布时间】:2019-09-08 17:15:39 【问题描述】:

我正在使用入门指南的“构建应用程序”中的设置,尽管在目录结构方面略有修改。

我在尝试对位于 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

【问题讨论】:

请分享这个文件 ./generated/prisma-client. 【参考方案1】:

根据您提供的数据模型,Prisma 将生成用于 CRUD 操作的客户端。

由于它是根据类型的名称生成的,它应该是这样的:

ctx.prisma.cnStatus()

【讨论】:

【参考方案2】:

这里应该是 ctx.prisma.cnStatus()

const resolvers = 
  Query: 
    status(parent, args, ctx, info) 
      return ctx.prisma.status()
    
  

并且您需要架构中的数组,但在查询解析器中返回实例

type Query 
  status: [cnStatus]

【讨论】:

以上是关于`ctx.prisma.status is not a function` 错误,即使它已定义的主要内容,如果未能解决你的问题,请参考以下文章

python is not None

python代码`if not x:` 和`if x is not None:`和`if not x is None:`使用

ClojureScript Is Not CoffeeScript

Servlet jsp is not available

如何在 SQL Server 中检查 Is not Null 和 Is not Empty 字符串?

Python `if x is not None` 或 `if not x is None`? [关闭]