首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >TypeError:无法读取未定义的属性“”schoolName“”

TypeError:无法读取未定义的属性“”schoolName“”
EN

Stack Overflow用户
提问于 2018-02-01 23:36:24
回答 1查看 219关注 0票数 0

因此,我正在尝试删除一个由用户填写的表单,该用户在提交时被绑定到user.id,但是当我尝试调用一些用户属性时,我得到一个未定义的错误。

这是我的路线:

代码语言:javascript
运行
复制
// delete competition form
router.get('/dashboard/users/forms/competition-form/delete/:id', ensureAuthenticated, (req, res, next) => {
  CompetitionForm.findByIdAndRemove(req.params.id, function(err, competition, user){
    req.flash('success_msg', `The competition form removed successfully!`);
    res.redirect('/dashboard');

    const output = `
      <h3>Competition Form Deletion</h3>
      <p>Hello ${user.schoolName},<p>
      <p>We are emailing you to make you aware that your competition form has been deleted from our records!<p>
      <br>
      <p>- POL – Puerto Rico</>
    `;

    nodemailer.createTestAccount((err, account) => {
      // create reusable transporter object using the default SMTP transport
      if (process.env.NODE_ENV === 'production') {
        transporter = nodemailer.createTransport({
          host: "smtp.sendgrid.net",
          port: 587,
          auth: {
            user: process.env.SENDGRID_USERNAME,
            pass: process.env.SENDGRID_PASSWORD,
          }
        });
      } else {
        transporter = nodemailer.createTransport({
          host: "smtp.ethereal.email",
          port: 587,
          auth: {
            user: 'qkkvnabtziufbksa@ethereal.email',
            pass: 'A4W9HF2WbhAav263VM',
          }
        });
      }
      // setup email data with unicode symbols
      let mailOptions = {
        from: process.env.GLOBAL_EMAIL || 'ben@benbagley.co.uk', // sender address
        to: `${user.email}`, // list of receivers
        subject: 'Competition Form Deletion | Poetry Out Loud', // Subject line
        html: output // html body
      };
      // send mail with defined transport object
      transporter.sendMail(mailOptions, (error, info) => {
        if (error) {
          return console.log(error);
        }

        console.log('Message sent: %s', info.messageId);
        console.log('Preview URL: %s', nodemailer.getTestMessageUrl(info));
      });
    });
  });
});

如果这里需要任何其他代码,请让我知道。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2018-02-01 23:57:47

您看到的错误意味着user在被调用时是未定义的。尝试在函数function(err, competition, user){...}中的某个位置放置一个debugger;,并在打开开发工具的情况下运行调用。当它停止时,您应该能够使用调用堆栈并找到您的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48566485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档