我需要设置参数,以便如果传递给模板的参数未定义,则模板渲染会失败并显示错误。
示例模板:
let template = "Hello <%=info.name%>, this is a test template.";
当调用render时,我发送以下内容:
let data = {
info: {
name: "Bob"
}
};
let rendered_template = ejs.render(template, data);
这为rendered_template提供了以下值:
Hello Bob, this is a test template.
但是,如果info.name
未定义,则模板仍将被呈现(仅当info
本身未定义时,模板将失败,因为它将无法读取属性name
的值),结果如下:
Hello , this is a test template.
如何将info.name
参数设置为必需参数,以便在info.name
的值未定义的情况下ejs.render失败?
答案 0 :(得分:0)
您可以将include
函数与if / else块结合使用:
<% if (info.name != undefined) { %>
<%- include 'someTemplate' %>
<% } %>
<% else { %>
<%- include 'someOtherTemplate' %>
<% } %>
someOtherTemplate
是未定义info.name
时要呈现的错误页面。
要通过node.js发送错误消息,您可以执行以下操作:
app.get('/someRoute', function(req, res) {
if (info.name) {
res.render('someTemplate', {info:info});
}
else {
res.status(403);
}
});