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