微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

GraphQl 解析器的上下文未定义

如何解决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 举报,一经查实,本站将立刻删除。