GraphQl 解析器的上下文未定义

问题描述

我是 graphQL 的新手,但无论出于何种原因,我的解析器中的上下文参数似乎都未定义。这是我设置服务器的方式:

index.js

import express from 'express';
import path from 'path';
import { fileLoader,mergeTypes,mergeResolvers } from 'merge-graphql-schemas';
import { ApolloServer } from 'apollo-server-express';
import models from './models';

const typeDefs = mergeTypes(fileLoader(path.join(__dirname,'./schema')));

const resolvers = mergeResolvers(fileLoader(path.join(__dirname,'./resolvers')));

const PORT = 4000;
const app = express();

const server = new ApolloServer({
   typeDefs,resolvers,});

server.applyMiddleware({ app });

models.sequelize.sync({force: true}).then(x => {
  app.listen({ port: PORT },() =>
  console.log(`? Server ready at http://localhost:4000${server.graphqlPath}`)
  );
});

示例解析器:

export default {
  Query: {
    getUser: (parent,{ id },{ models }) => models.User.findOne({ where: { id } }),allUsers: (parent,args,{ models }) => models.User.findAll(),},Mutation: {
    createuser: (parent,{ models }) => models.User.create(args),};

当我尝试执行 createuser 突变时,出现错误:无法读取未定义的属性用户”。

这意味着我的上下文对象参数未定义。感谢任何帮助,GraphQL 设置对我来说有点混乱。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)