Ошибка типа: Не удается прочитать свойство 'createProduct' из неопределенного?(из файла graphql mutation.js) - PullRequest
0 голосов
/ 01 апреля 2019

Когда я пишу те же запросы для моего публичного API (localhost) Я получаю ошибку:

TypeError: Cannot read property 'createProduct' of undefined
    at createProduct (/Users/gavish/Desktop/Final Beta/sick-fits/backend/src/resolvers/Mutation.js:5:42)
    at field.resolve (/Users/gavish/Desktop/Final Beta/sick-fits/backend/node_modules/graphql-extensions/lib/index.js:119:77)
    at resolveFieldValueOrError (/Users/gavish/Desktop/Final Beta/sick-fits/backend/node_modules/graphql/execution/execute.js:531:18)
    at resolveField (/Users/gavish/Desktop/Final Beta/sick-fits/backend/node_modules/graphql/execution/execute.js:495:16)
    at /Users/gavish/Desktop/Final Beta/sick-fits/backend/node_modules/graphql/execution/execute.js:339:18
    at /Users/gavish/Desktop/Final Beta/sick-fits/backend/node_modules/graphql/jsutils/promiseReduce.js:25:10
    at Array.reduce (<anonymous>)
    at promiseReduce (/Users/gavish/Desktop/Final Beta/sick-fits/backend/node_modules/graphql/jsutils/promiseReduce.js:22:17)
    at executeFieldsSerially (/Users/gavish/Desktop/Final Beta/sick-fits/backend/node_modules/graphql/execution/execute.js:336:38)
    at executeOperation (/Users/gavish/Desktop/Final Beta/sick-fits/backend/node_modules/graphql/execution/execute.js:289:55)

Поскольку я новичок в graphql, работаю с базой данных graphql и Prisma, Я могу запрашивать и изменять объекты, когда я пишу запросы и мутации для сервера демо-призмы, но не на конечной точке локального хоста моего открытого API для моего приложения!

ниже - мой файл мутаций, для которого он показывает ошибку:

const Mutations = {
    async createProduct(parent, args, ctx, info) {
        console.log('mutation started!')
        const product = await ctx.db.mutations.createProduct({
            data: {
                ...args
            }
        }, info)
        console.log('mutation done!')
        return product
    }
};

module.exports = Mutations;

и это мой файл schema.graphql

# import * from './generated/prisma.graphql'

type Mutation {
  createProduct(
  id:ID
  name: String
  description: String
  price: Int
  colors: String
  quantity: Int ): Product!
}

type Query {
products:[Product]!
}

Я думаю, что-то не так с синтаксисом, который я использую. Кроме того, что такое формат ES6, чтобы написать функцию мутации!

1 Ответ

2 голосов
/ 08 апреля 2019

Это ctx.db.mutation, а не ctx.db.mutations.

Возможно, вы захотите переключиться на prisma-client вместо prisma-привязки, поскольку он более безопасен для типов, чтобы вы могли избежать подобных ошибок.

https://www.prisma.io/docs/prisma-client/

...