Node.js 如果传入的对象不存在,EJS和节点会抛出错误?
我正在尝试使用ejs将消息对象传递给模板。我的路线代码如下:Node.js 如果传入的对象不存在,EJS和节点会抛出错误?,node.js,express,ejs,embedded-javascript,Node.js,Express,Ejs,Embedded Javascript,我正在尝试使用ejs将消息对象传递给模板。我的路线代码如下: app.get('/', function(req, res) { res.render('index.ejs', {message: 'A message'}); }); 在我的ejs(index.ejs)文件中,我有: <% if (message) { %> <div class="alert alert-danger"><%= message %></
app.get('/', function(req, res) {
res.render('index.ejs', {message: 'A message'});
});
在我的ejs(index.ejs)文件中,我有:
<% if (message) { %>
<div class="alert alert-danger"><%= message %></div>
<% } %>
类似地,如果我尝试
if(message.length>0)
,那只会给我同样的错误。我认为if
语句的全部要点是if消息不存在,它只是跳过。如果没有传递消息对象,或者每次都必须传递一个空的消息
对象,我如何使ejs不呈现任何内容?明确检查是否定义了消息
。这就解决了这个问题:
<% if (typeof message !== 'undefined' && message.length > 0) { %>
<div class="alert-danger"><%= message %></div>
<% } %>
0){%>
很抱歉,我不明白。不传递对象会导致该错误。我不希望每次都传递空字符串的对象…您可以尝试使用局部变量。消息
,如中所示
<% if (typeof message !== 'undefined' && message.length > 0) { %>
<div class="alert-danger"><%= message %></div>
<% } %>