如果在语义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:''}
它确实可以正常工作
我必须这样使用吗?
答案 0 :(得分:1)
在 view.ejs 中,最好按如下方式检查if条件。不仅在ejs中,而且在整个 javascript 世界
中<% if(typeof topic !== 'undefined') {%>
<%= topic.description %>
<%} else {%>
<h1>Welcome</h1>
<% } %>
您也可以使用res.render('views', {topics:rows, topic:''}