从Express / node.js Web应用程序预填充HTML / Jade

时间:2013-10-15 17:02:57

标签: html node.js mongodb express pug

我有一个使用Express for node.js构建的Web应用程序。我正在使用Jade模板文件进行HTML显示。在其中一个显示器中,我希望预先填充数据的各个字段。数据存储在mongodb会话存储中,也存储在db中的单独集合中。我更喜欢使用会话数据在HTML / Jade显示中预先填充这些字段。我怎么能这样做(如果可能的话)?

2 个答案:

答案 0 :(得分:3)

将默认值添加到res.locals,然后在jade中设置input元素value属性。

//node.js
app.get('/', function(req, res){
  // Sorry I am unfamiliar with Mongo, not sure the syntax...
  mongo.get('defaults', function(err, body){
    res.locals.dName = body.defaultName;
    res.locals.dFoo = body.defaultFoo;
    res.render('myTemplate');
  });
});

//myTemplate.jade
!!!
html
  body
    form(action='/form', method='post')
      input#formName(name='name', value=locals.dName)
      input#formFoo(name='foo', value=locals.dFoo)

答案 1 :(得分:1)

我通过使用Express API中的res.render()来解决这个问题。我会赞同柏拉图的答案,因为他似乎也是正确的,他是回答我问题的好人。

exports.viewProfile = function(req, res) {
    res.render('viewProfile', {username: req.session.user, firstname: req.session.firstname});
}