Expressjs通过route.render传递当地人

时间:2015-03-09 18:16:03

标签: javascript node.js templates express

控制台日志向我显示活动用户,但我无法在视图中使用它,我使用普通的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 %>

2 个答案:

答案 0 :(得分:2)

您的代码应为:

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

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

答案 1 :(得分:0)

以下是一个例子:

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

res.render('view_name', context);