Node.js 从express到jade的变量传递不一致

Node.js 从express到jade的变量传递不一致,node.js,mongodb,express,pug,Node.js,Mongodb,Express,Pug,我正在玩Node.js、Express、Jade和MongoDB。我遇到了一个关于渲染的奇怪问题。我传递了从db查询返回的变量“users”,如下所示,我确信它是正确的: userProvider.findByIds(ids, function(error, users) { res.render('index', { users: users }); // This users here has all documents founded by Ids. }); 在Jade模板文件ind

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

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,它会正常工作,并显示每个用户都包含最新的一个


我想这类东西可能存在缓存问题。对此有什么想法吗?

我假设这与您的代码类似:

ul
  - each user in users
    li user.name    
问题是行首的破折号字符(
-
)中有
。破折号将把行的其余部分转换为,但
每个
都不是代码

一个用户被渲染的原因可能与jade/pug如何处理该行有关,我敢打赌它会将第一行放入内存,但无法处理循环

无论如何,这是在用户数组中循环的正确语法:

ul
  each user in users
    li user.name    

你需要发布“用户”的内容,我们才能帮助你。我只是以用户为例。我认为,它有什么样的内容并不重要。例如,在渲染之前,我检查了用户的长度为5。但在jade中,用户的长度是1。这只有在我添加了一个新文档后才会发生。这里没有足够的信息来提供答案。根据我的经验,您使用的工具在传递值时应该没有任何问题,无论是标量、数组还是对象。如何向用户“添加文档”?经由蒙戈?在哪里调用res.render()?从您传递给Mongo的处理程序内部?刚刚更新了问题。希望现在更容易理解。这是我在这里问的第一个问题:p.您的查询是否抛出了一个
错误
?另外,您如何添加新用户?