Expressjs 通过 route.render 传递当地人

Expressjs passing locals with route.render

控制台日志显示活动用户,但我无法在视图中使用它,我使用的是普通 html。

app.post('/',  function (req, res) {
   var user = { user : req.body.username };
   res.render('doctor_hagfish/pets',  { locals:{
   user:user
   }});
   console.log(user)
});

我不知道我做错了什么,有建议吗? 直到现在我在视图中尝试了这些语法 #{user} {{user}}

我的模板引擎设置

 app.engine('html', require('ejs').renderFile);
 app.set('view engine', 'html');

所以我使用了ejs标签<% user %>然后什么都没有显示,所以这意味着模板引擎将它识别为定义的var但仍然没有显示。

问题是 ejs 模板引擎本地语法错误 答案:<%= user %>

您的代码应该是:

app.post('/',  function (req, res) {
   var username = req.body.username;
   res.render('doctor_hagfish/pets',  {
   user: username
   });
});

并在模板打印变量内部 user。是#{user}还是{{user}}取决于模板引擎。

这是一个例子:

var context = {
    username : req.body.username
    //Any other data you want in your view
};

res.render('view_name', context);