如何解决Apollo GraphQL - 类型错误:无法读取未定义的属性“findOrCreateUser”
我正在学习本教程 https://www.apollographql.com/docs/tutorial/mutation-resolvers/#book-trips
并最终收到此错误:
"TypeError: Cannot read property 'findOrcreateuser' of undefined"," at login
mutation LoginUser {
login(email: "daisy@apollographql.com") {
token
}
}
下面的文件是调用 findOrcreateuser 的地方: src/resolvers.js
module.exports = {
Mutation: {
login: async (_,{email},{dataSources}) => {
const user = await dataSources.userAPI.findOrcreateuser({ email });
if (user) {
user.token = Buffer.from(email).toString('base64');
return user;
}
},},
这是定义数据源的地方: src/index.js
require('dotenv').config();
const { ApolloServer } = require('apollo-server');
const typeDefs = require('./schema');
const { createStore } = require('./utils');
const resolvers = require('./resolvers');
const isEmail = require('isemail');
const LaunchAPI = require('./datasources/launch');
const UserAPI = require('./datasources/user');
const store = createStore();
const server = new ApolloServer({
context: async ({req}) => {
const auth = req.headers && req.headers.authorization || '';
const email = Buffer.from(auth,'base64').toString('ascii');
if (!isEmail.validate(email)) return {user: null};
// find a user by their email
const users = await store.user.findOrCreate({ where: { email } });
const user = users && users[0] || null;
return { user: {...user.dataValues } };
},dataSources: () => ({
launchAPI: new LaunchAPI(),UserAPI: new UserAPI({store})
}),typeDefs,resolvers,});
server.listen().then(() => {
console.log(`
Server is running!
Listening on port 4000
Explore at https://studio.apollographql.com/dev
`)
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。