2016-02-27 24 views
0

http://cwbuecheler.com/web/tutorials/2013/node-express-mongo/的node.js - MongoDB中到EJS - 渲染整個集合

我一直在關注這個教程中,我想要做類似用戶列表頁面的東西,唯一的區別,我想EJS而不是用玉石。

在HTML中,最終的結果應該是這個樣子:

<ul> 
    <li><a href="users/testuser1">testuser1</a></li> 
    <li><a href="users/testuser2">testuser2</a></li> 
    <li><a href="users/testuser3">testuser3</a></li> 
</ul> 

在index.js文件,我有這樣的代碼:

/* GET Userlist page. */ 
router.get('/userlist', function(req, res) { 
    var db = req.db; 
    var collection = db.get('usercollection'); 
    collection.find({},{},function(e,docs){ 
     res.render('userlist', { 
      "userlist" : docs 
     }); 
    }); 
}); 

在玉,這是怎麼了看起來:

extends layout 

block content 
    h1. 
     User List 
    ul 
     each user, i in userlist 
      li 
       a(href="users/#{user.username}")= user.username 

基本上,我想在ejs做到這一點。任何想法?

回答

0

要在UL列表中顯示的用戶,你可以嘗試這樣的事:

<ul> 
    <% userlist.forEach(function(user) { %> 
    <li><a href="users/#<%= user.username %>"><%= user.username %></a></li> 
    <% } %> 
</ul> 

這裏是一個很好的教程爲您排憂解難! :https://scotch.io/tutorials/use-ejs-to-template-your-node-application

+0

感謝。儘管我不需要標籤。這只是玉我想逃跑。但教程鏈接您提供的是有用的,所以感謝這一點。 – indianhottie

1

要使用EJS而不是玉,首先你需要配置視圖引擎向快遞框架工作。這可以按照如下進行。

app.set('view engine', 'ejs'); // ejs in your case. 

還需要使用下面的一行代碼

app.set('views', path.join(__dirname, 'views')); // here views is folder name inside of the project folder. 

指定EJS文件的位置,然後你必須在xxx.ejs文件中使用下面的代碼。

<ul> 
    <% userlist.forEach(function(user) { %> 
    <li><a href="users/#<%= user.username %>"><%= user.username %></a></li> 
    <% } %> 
</ul> 
+0

謝謝。我不需要標籤。那只是爲了玉。 – indianhottie