Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何使用jade模板接受来自多个源的信息并使用include语句显示_Node.js_Mongodb_Include_Express_Pug - Fatal编程技术网

Node.js 如何使用jade模板接受来自多个源的信息并使用include语句显示

Node.js 如何使用jade模板接受来自多个源的信息并使用include语句显示,node.js,mongodb,include,express,pug,Node.js,Mongodb,Include,Express,Pug,我有这个模板: .bar .titleBox a.title(href=URL) #{title} 我想在另一个页面titles.jade中多次包含它,如下所示: #contentBox include bar include bar include bar 我希望每个URL和标题都有不同的值 我在节点中有以下代码: read(function(post){ //post is an array of objects retrieved from a mongodb

我有这个模板:

.bar
  .titleBox
    a.title(href=URL) #{title}
我想在另一个页面titles.jade中多次包含它,如下所示:

#contentBox
  include bar
  include bar
  include bar
我希望每个URL和标题都有不同的值

我在节点中有以下代码:

read(function(post){ //post is an array of objects retrieved from a mongodb collection
    // I was thinking of using a for loop to iterate through the array
    res.render('titles', {title: post[i].title, url: post[i].URL});

我怎样才能达到我想要的结果呢?

我不确定这些对象代表什么,但我假设现在我们谈论的是书籍。如果您的jade模板可以作为本地模板获取书籍列表-例如,如果它重新设计为:

res.render('books_index', {books: [{title: 'dune', url: 'http://www.dunenovels.com'},...]})
你可以用一个。大概是这样的:

mixin listBooks(books)
  each book in books
    .bar
      .titleBox
        a.title(href=book.url)= book.title
稍后在模板中,您可以渲染mixin:

mixin listBooks(books)

这个解决方案对我帮助很大,但是我可以使用mixin在不同的jade页面上显示不同书籍的信息吗?我不确定我是否回答了你的问题,但是你可以将mixin放在它自己的文件中,并像其他模板一样包含它。然后,任何从图书列表中获益的页面都可以包含mixin并使用它。呈现的内容当然取决于呈现特定视图时
书籍的值。