问题描述
我是 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 (将#修改为@)