Node.js 如果传入的对象不存在,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 %></

我正在尝试使用ejs将消息对象传递给模板。我的路线代码如下:

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>
<% } %>