问题描述
我正在学习本教程 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 (将#修改为@)