不一致的变量从快递传递到玉

时间:2013-07-16 17:04:33

标签: node.js mongodb express pug

我正在玩Node.js,Express,Jade和MongoDB。我遇到了一个关于渲染的奇怪问题。我传递了变量“users”,它从db查询返回,如下所示,我很确定它是正确的:

userProvider.findByIds(ids, function(error, users) {
  res.render('index', { users: users }); // This users here has all documents founded by Ids.
});

在Jade模板文件中,index.jade有一个循环:

- each user in users //-This users here has only one document after I added a new user

每次添加新用户后都无效。它仅显示一个用户,即最新添加的用户。但是,如果我重新启动Node.js,它的工作正确并显示每个用户都包含最新的。

我猜这些东西存在一些缓存问题。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我将假设这类似于您的代码:

ul
  - each user in users
    li user.name    

此问题是在行中以-开始的破折号(each)。破折号会将行的其余部分转换为unbuffered code,但each不是代码。

渲染一个用户的原因可能与玉/ pug处理该行的方式有关,我敢打赌它会将第一个存储在内存中,但无法处理循环。

无论如何,这是遍历users数组的正确语法:

ul
  each user in users
    li user.name