如何使用Express和Node.JS使用EJS渲染Mongodb查询的结果?

时间:2016-02-12 09:23:53

标签: node.js mongodb express underscore.js ejs

我试图避免每次使用时都创建数据库查询 router.get("/whatever",function()...)

所以我创建了一个dbController,它通过
返回一个文档数组 db.collection.find().toArray()

工作正常。 我在这里ch咽了

router.get( "/test" , function ( req , res , err ) {
        if (err) console.dir( err );

    var categoriesArray = require ( "./Controllers/dbController" ).getCategsArray();

    console.log( "!!!!!!!!!!!!!!!" + categoriesArray );

    res.render( "hello" , {
                _: _ ,
            title: "la naiba" ,
            items: categoriesArray
        });
    });

因为虽然console.log显示了文档数组

[Function: next]
!!!!!!!!!!!!!!!
[ { _id: ObjectID { _bsontype: 'ObjectID', id: 'QrÑUÿY?ó#M_?' },
    categories: [ [Object], [Object] ],
    id: 'mens',
    name: 'Mens',
    page_description: 
................................

我没有在EJS模板中找到它

..............................................
<% _.each(items, function(topC) { %>
<li>
    <h1><%= topC.name %></h1>
..........................

title property虽然被渲染了。我非常感谢任何帮助,因为我是一个完整的n00b而且我整夜都在努力取得进步

1 个答案:

答案 0 :(得分:1)

要进行交互的名称和列表位于 categoriesArray 中,那么您需要进行interate categoriesArray。有人这样:

<% items.forEach(function (topC) { %>
    <li>  
        <h1><%= topC.name %></h1>  
    </li>                                   
<% }) %>