如何仅在 Express 视图引擎传递值时显示 HTML 标记?

How do I show a HTML tag only when Express view engine passes a value?

如果您看到下面的代码,您会注意到对于 GET 请求,'add' 页面没有传递任何值,而对于 POST 请求,'add' 页面获取'msg' 值作为发布的结果。

router.get('/add', (req, res) => {
  res.render('add', {})
})

router.post('/add', (req, res) => {
  // receive a form 
  // save it to the database
  // Promise is returned
  .then(gig => res.render('add', {
    msg: 'Your application is successful.'
  })
  .catch((err) => console.log(err));
  }
 })

add.ejs文件中,我不允许写<%= msg %>因为它会导致GET 请求的错误。除了将 { msg: null } 传递给 GET 路由器之外,还有其他方法吗?

router.get('/add', (req, res) => {
      res.render('add', { msg: null })
})

我问这个是因为我认为在这种情况下传递 null 是非常重复的。

备选方案是在要呈现的文件中添加控件

<% var msg = msg ??空 %>

这样,如果变量 msg 未传递,则值为 null,字段将为空