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 (将#修改为@)