我的ejs模板中的“错误”变量在页面加载时导致“未定义”错误

时间:2018-12-30 22:27:26

标签: javascript node.js express ejs

我的ejs模板中的'errors'变量在页面加载时导致'undefined'错误

我有一个联系表单的ejs模板,其中包含代码,可在表单未正确或未完全填写时通过Flash消息将错误输出到页面。

<%- messages('message', locals) %>

    <% if (errors !== undefined) { %>
    // Output the errors to the page
    <% errors.forEach(function(error) { %>
        <div class="alert alert-danger">
            <%= error.message %>
        </div>
    <% }) %>
<% } %>

我的app.js文件中的代码创建了“错误”变量。

let errors = req.validationResult();

if (errors) {
    res.render('contact-form', {
        errors: errors
    });

对于价值而言,“ messages.ejs”模板包含以下代码:

<div id="messages">
<% Object.keys(messages).forEach(function (type) { %>
    <div class="alert alert-<%= type %>">
    <% messages[type].forEach(function (message) { %>
        <p><%= message %></p>
    <% }) %>
    </div>
<% }) %>
</div>

该行:

<% if (errors !== undefined) { %>

从contact-form.ejs模板抛出“未定义错误”错误。

1 个答案:

答案 0 :(得分:0)

我的猜测是“未定义的错误”是指vec[cumsum(abs(vec)) > 0 & rev(cumsum(rev(abs(vec)))) > 0] ## [1] 1 2 0 3 4 errors.forEach的结果不是错误数组,它是带有validationResult()isEmpty()之类的吸气剂的对象,因此您可能需要稍微调整控制器代码。

查看the docs以获得一些示例。