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

标签 node.js express pug

我几天来一直在寻找这个问题的解决方案,并且希望得到任何解决方案或建议。

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

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

如果我将代码保留在 app.js 文件中,并且没有向其中传递 jade 文件:

var articleProvider= new ArticleProvider();

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

app.listen(3000);

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

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

TypeError: Cannot read property 'length' of undefined

...它指的是我的 jade 文件中的每个循环(第 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到这整个该死的事情的根源。非常感谢任何帮助!

最佳答案

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

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

关于node.js - jade循环无法访问node.js文件中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25069410/

相关文章:

node.js - NestJS 拦截器 - 处理 .pipe() 中的错误

javascript - Jade 模板未链接

javascript - 使用 Socket.io 无需重新加载即可刷新页面上的数据

javascript - MongoDB - $set 更新或推送数组元素

node.js - Sendgrid send_at nodejs

javascript - 如何从 Node.js Express 服务器将 JSON 数据返回到 Riot.js?

node.js - Node Express MongoDB Native Driver — 在哪里打开数据库连接?

javascript - 有没有办法只用一个回调调用递归地进行异步调用?

javascript - Node/Express/mysql 如何在jade 页面中获取SQL 结果?

node.js - 在 Mongoose 中创建索引