在Nodejs中,我如何检查Ejs渲染中的参数

时间:2017-08-28 14:55:27

标签: node.js ejs

如果在语义URL

中有:id,我想显示另一个视图
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>
<% } %>

当我连接到localhost:3000 / topic / 1

时,它确实可以正常工作

但是当我连接到localhost:3000 / topic

控制台说主题没有定义

问题是什么?

当我使用

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

它确实可以正常工作

我必须这样使用吗?

1 个答案:

答案 0 :(得分:1)

view.ejs 中,最好按如下方式检查if条件。不仅在ejs中,而且在整个 javascript 世界

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

您也可以使用res.render('views', {topics:rows, topic:''}