JavaScript не может прочитать свойство ‘fetch’ из неопределенного

Невозможно прочитать свойство ‘fetch’ из неопределенного

Я пытаюсь добавить источник данных REST на мой сервер Apollo. Я создал класс, который расширяет RESTDataSource, который содержит все запросы API. При попытке вызвать метод входа из моего кода распознавателя GraphQL выдается ошибка

Как я могу это исправить?

Я уже пробовал: привязка метода входа в систему и выборки в конструкторе класса API

this.login = this.login.bind (this); this.fetch = this.fetch.bind (this);

вызов метода входа из конструктора

Класс RESTDataSource

 class API extends RESTDataSource { constructor() { super(); this.baseURL = URL; this.login = this.login.bind(this); this.fetch = this.fetch.bind(this); console.log(this.fetch); console.log(this.login); } initialize(config) { //config can store different information //the current user can be stored in config.context for easy access this.context = config.context; } async login(username, password) { return this.post(`/`, { "id": 1 }, { "method": "authenticate" }, { params: { "user": username, "password": password }, "jsonrpc": "2.0" }) } } 

Вот файл «setup» сервера index.js apollo:

 const server = new ApolloServer({ typeDefs, resolvers, dataSources: () ={amp}gt; { return { managementDatabase: new ManagementDatabase(), API: new API() //was previously imported } } }); server.listen().then(({ url }) ={amp}gt; { log(`🚀 Server ready at ${url}`) }) 

Файл резолвера для GraphQL:

 Query: { lessons: async (_source, _args, { dataSources }) ={amp}gt; { const data = await dataSources.webuntisAPI.login(process.env.USER, process.env.PW); console.log(data); return data; } } 
Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector