Express. js - TypeError: Невозможно прочитать свойство 'render' из неопределенного - PullRequest
0 голосов
/ 28 апреля 2020

В моем Express. js бэкэнде, когда пользователь хочет сбросить свой пароль, на его электронную почту отправляется ссылка через Sendgrid, и при нажатии на ссылку пользователь получает эту ошибку:

TypeError: Cannot read property 'render' of undefined
    at resetPasswordController.showResetPassword (/root/apps/AskArya-Node.js-Vue.js/Server/app/http/controllers/auth/resetPasswordController.js:11:33)
    at Layer.handle [as handle_request] (/root/apps/AskArya-Node.js-Vue.js/Server/node_modules/express/lib/router/layer.js:95:5)
    at next (/root/apps/AskArya-Node.js-

Код для resetPasswordController:

  class resetPasswordController extends controller {
  showResetPassword(req, res) {
    const title = 'بازیابی رمز عبور';
    res.render('home/auth/passwords/reset', {
      recaptcha: this.recaptcha.render(),
      title,
      token: req.params.token
    });
  }

  async resetPasswordProccess(req, res, next) {
    await this.recaptchaValidation(req, res);
    let result = await this.validationData(req);
    if (result) {
      return this.resetPassword(req, res);
    }

    this.back(req, res);
  }

  async resetPassword(req, res) {
    let field = await PasswordReset.findOne({
      $and: [{ email: req.body.email }, { token: req.body.token }]
    });
    if (!field) {
      req.flash('errors', 'اطلاعات وارد شده صحیح نیست لطفا دقت کنید');
      return this.back(req, res);
    }

1 Ответ

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

Я считаю, что эта ошибка происходит из этой строки:

recaptcha: this.recaptcha.render(),

Это потому, что this.recaptcha имеет значение null. Возможно, этот код был скопирован откуда-то еще, где был определен this.recaptcha.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...