ejs template 变量未定义的解决办法 - ejs template variable is not defined on page load and errors
https://www.npmjs.com/package/ejs
EJS ReferenceError : object is not defined
问题
我有一个表格,提交到 express :
app.post('/myform', function (req, res) {
var content = new registration(req.body);
content.save(function(errObj){
if(errObj){
res.render('registration',{error: errObj});
} else {
res.render('thankyou');
}
});
如果有任何错误,我会在 ejs template 中显示:
<% if (error) { %>
<li><%= error %></li>
<% } %>
但是在 error 没有出现时,我的模板报错了(虽然已经在上面进行了非空判断):
error is not defined
为什么?如何解决?
回答
你可以使用以下任意三种方法:
方法一:始终传入 error 对象,默认值为 false
res.render('registration', {error: false});
方法二:使用 typeof 进行非空判断
<% if( typeof(error) =="undefined")%>
方法三:使用 locals 对象
<% if(locals.error) %>