Почему у меня появляется эта ошибка «Не удается прочитать свойство 'authService' из неопределенного» - PullRequest
0 голосов
/ 06 апреля 2020

При запросе POST / auth / signup выскакивает ошибка Gist code

TypeError: Невозможно прочитать свойство 'authService' undefined в F: _node-projects \ price-мониторинг- backend \ build \ controllers \ auth.controller. js: 54: 41 на шаге (F: _node-projects \ price-monitor-backend \ build \ controllers \ auth.controller. js: 33: 23) в объекте .next (F: _node-projects \ Price-Monitoring-Backend \ build \ controllers \ auth.controller. js: 14: 53) в F: _node-projects \ Price-Monitoring-backend \ build \ controllers \ auth. controller. js: 8: 71 в новом Promise () в __awaiter (F: _node-projects \ price-monitor-backend \ build \ controllers \ auth.controller. js: 4: 12) в AuthController.signUp ( F: _node-projects \ Price-Monitoring-Backend \ build \ controllers \ auth.controller. js: 45: 16) в Layer.handle [как handle_request] (F: _node-projects \ Price-Monitoring-backend \ node_modules \ express \ lib \ router \ layer. js: 95: 5) на следующем (F: _node-projects \ price-Monitoring-backend \ node_modules \ express \ lib \ router \ route. * 1 013 *: 137: 13) в Route.dispatch (F: _node-projects \ back-end-мониторинга цен \ node_modules \ express \ lib \ router \ route. js: 112: 3) в Layer.handle [как handle_request] (F: _node-projects \ Price-Monitoring-Backend \ node_modules \ express \ lib \ router \ layer. js: 95: 5) в F: _node-projects \ Price-Monitoring-backend \ node_modules \ express \ lib \ router \ index. js: 281: 22 end \ node_modules \ express \ lib \ router \ index. js: 317: 13) в F: _node-projects \ back-end-мониторинга цен \ node_modules \ express \ lib \ router \ index. js: 284: 7 в Function.process_params (F: _node-projects \ Price-Monitoring-backend \ node_modules \ express \ lib \ router \ index. js: 335: 12) в следующий (F : _node-projects \ Price-Monitoring-Backend \ node_modules \ express \ lib \ router \ index. js: 275: 10) в hpp (F: _node-projects \ Price-Monitoring-backend \ node_modules \ hpp \ lib \ . индекс * * тысяча двадцать-одна: 146: 9)

1 Ответ

0 голосов
/ 06 апреля 2020

Это вызвано этой строкой:

const result = await this.authService.signup(userData)

Это функция, которая является частью класса. Однако, когда вы передаете эту функцию своему маршруту, вы теряете ссылку на this:

this.router.post(`${this.path}/signup`, this.authController.signUp)

Чтобы сохранить область действия this, вам необходимо привязать ее к себе:

this.router.post(`${this.path}/signup`, this.authController.signUp.bind(this.authController))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...