Express.js - 类型错误:无法读取未定义的属性'render'



在我的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);
}

我相信这个错误来自这一行:

recaptcha: this.recaptcha.render(),

这是因为This.captcha为null。可能,这个代码是从其他地方复制的,在那里定义了this.captcha。

相关内容

最新更新