`ctx.prisma.status не является ошибкой функции`, даже если она определена - PullRequest
0 голосов
/ 18 апреля 2019

Я использую настройку в "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
}

Ответы [ 2 ]

0 голосов
/ 30 апреля 2019

здесь должно быть ctx.prisma.cnStatus ()

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

и вам требуется массив в схеме, но возвращаемый экземпляр в преобразователе запросов

type Query {
  status: [cnStatus]
}
0 голосов
/ 19 апреля 2019

На основании предоставленной вами модели данных Prisma сгенерирует клиента для операций CRUD.

Поскольку он генерируется на основе имен типов, он должен выглядеть примерно так:

ctx.prisma.cnStatus()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...