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

引用:
https://stackoverflow.com/a/48019964/2893073

posted @ 2022-09-05 10:20  炎黄子孙,龙的传人  阅读(288)  评论(0编辑  收藏  举报