jade循环无法访问node.js文件中的变量

时间:2014-07-31 21:41:52

标签: node.js express pug

我一直在寻找解决方案,并且会喜欢任何解决方案或建议。

根据this how to node tutorial,我正在使用node.js,express和mongo db构建一个非常简单的博客。我这样做是为了更好地理解节点,因为我还不是很精通。

我遵循所有说明,考虑到版本的差异,一切都运行良好,直到我到达教程中的标题“A View to Kill”,我将一些虚拟数据发送到要渲染的玉文件。

如果我将代码留在app.js文件中,因为没有传递jade文件:

var articleProvider= new ArticleProvider();

app.get('/', function(req, res){
  articleProvider.findAll(function(error, docs){
      res.send(docs);
  });
})

app.listen(3000);

我得到了数据对象的渲染。

但是当我传入要渲染的玉文件时,我收到错误:

TypeError: Cannot read property 'length' of undefined

...指的是我的玉文件(第3行)中的每个循环,在这里:

h1= title
#articles
    - each article in articles
      div.article
        div.created_at= article.created_at
        div.title 
            a(href="/blog/"+article._id)!= article.title
        div.body= article.body

Here is the link对整个该死的东西的g ..非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

articles引用未定义。尝试将渲染代码更改为以下内容:

app.get('/', function(req, res){
    articleProvider.findAll(function(error, docs){
        res.render('index.jade', {
            articles: docs
        });
    });
});