Node.js 将数据传递到emailTemplate ejs文件时出现问题

Node.js 将数据传递到emailTemplate ejs文件时出现问题,node.js,express,web,ejs,Node.js,Express,Web,Ejs,我正在尝试将令牌传递给电子邮件模板,该模板是一个ejs文件,即emailTemplate.ejs 但它不是作为数据呈现,而是作为测试呈现,即令牌变量作为令牌文本呈现。 代码如下: sendgridMail.setApiKey(sendGridApi) const email = async (req, res, next) => { const user = await User.findOne({ email: req.body.email }) let token if

我正在尝试将令牌传递给电子邮件模板,该模板是一个ejs文件,即emailTemplate.ejs 但它不是作为数据呈现,而是作为测试呈现,即令牌变量作为令牌文本呈现。 代码如下:


sendgridMail.setApiKey(sendGridApi)

const email = async (req, res, next) => {
  const user = await User.findOne({ email: req.body.email })
  let token
  if (user) {
    token = user.tokens.slice(-1)[0].token
    console.log('token before sending email ', token)
  }
  const filePath = path.join(__dirname, '/../../views/emailTemplate.ejs')
  // TO PASS TOKEN TO EMAIL TEMPLATE EJS FILE
  ejs.renderFile(filePath, { token: token }, (err, data) => {
    if (err) {
      console.log('Error in renderFile ', err)
    } else {
      // console.log('ejs data ', data)
      const message = {
        to: req.body.email,
        from: 'services@codeuino.com',
        subject: `Welcome to Donut ${req.body.name.firstName}`,
        html: data
      }
      sendgridMail.send(message).then(
        () => {
          console.log('sending email')
          next()
        },
        (error) => {
          res.status(HttpStatus.BAD_REQUEST).send({
            error: process.env.SENDGRID_API_KEY
              ? error.response.body
              : 'Setup SENDGRID_API_KEY environment variable'
          })
        }
      )
    }
  })
}
下面是试图呈现URL的电子邮件模板EJ

 <p>http://localhost:5000/user/activate/ <=% token %></p> // TOKEN IS NOT GETTING RENDERED HERE

我认为这只是一个ejs语法错误。 将参数传递给模板应该如下所示


啊。。一个简单的打字错误毁了我的一天。非常感谢@stefan!你救了我。任何人都可能遇到:祝你有愉快的一天
app.set('views', path.join(__dirname, 'views'))
app.set('view engine', 'ejs')