2017-08-28 73 views
0

我想顯示另一種觀點認爲,如果有:ID在語義URL在的NodeJS,我怎麼能檢查在EJS PARAMS渲染

app.get(['/topic', '/topic/:id'], function(req, res){ 
    id = req.params.id  
    if(id){ 
    res.render('view',{topics:rows, topic:row[0]} 
    }else{ 
    res.render('view', {topics:rows} 
    } 
} 

view.ejs

for(var i = 0; i < topics.length; i++){ 
<li><%= topics[0].title%></li> 
} 
<% if(topic) {%> 
    <%= topic.description %> 
<%} else {%> 
    <h1>Welcome</h1> 
<% } %> 

它確實工作正常,當我連接到本地主機:3000 /主題/ 1

但是當我連接到localhost:3000 /話題

控制檯說未定義主題

有什麼問題?

當我使用

res.render('views', {topics:rows, topic:''} 

它正確

我一定要使用這樣那樣的作品?

+0

在這裏看到:https://stackoverflow.com/questions/5372559/what-is-the-proper -WAY到檢查換存在變量功能於一的 - - EJS模板,我們 –

回答

1

view.ejs最好檢查if條件如下。不僅在EJS但在整個的JavaScript世界

<% if(typeof topic !== 'undefined') {%> 
    <%= topic.description %> 
<%} else {%> 
    <h1>Welcome</h1> 
<% } %> 

而且你還可以使用使用res.render('views', {topics:rows, topic:''}