Mik*_*gin 2 ejs node.js 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');
}
});
Run Code Online (Sandbox Code Playgroud)
如果将表单数据保存到 mongoDb 时出现任何错误,我想在表单顶部显示这些错误,以便将错误对象传递回 ejs 模板:
<% if (error) { %>
<li><%= error %></li>
<% } %>
Run Code Online (Sandbox Code Playgroud)
但是当我最初加载页面并且还没有错误时(因为尚未提交表单)我在页面上收到一个错误并且表单没有呈现:
error is not defined
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?
Nat*_*hat 16
res.render('registration', {error: false});
error存在这样的:
<% if( typeof(error) =="undefined")%>//检查变量类型
error通过locals像这样访问对象来查看变量是否存在:
<% if(locals.error) %>
您可以在 error 属性中使用一个不会进入 if 的值:
res.render('registration', {error: false});
Run Code Online (Sandbox Code Playgroud)
以下代码解释了一个工作示例:
<% if (typeof error ='object' && error) { %>
<li><%= error %></li>
<% } %>
Run Code Online (Sandbox Code Playgroud)