【问题标题】:My 'errors' variable in ejs template causes 'undefined' error on page load我在 ejs 模板中的“错误”变量导致页面加载时出现“未定义”错误
【发布时间】:2019-05-27 15:51:16
【问题描述】:

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

我有一个用于联系表单的 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 模板正在抛出“未定义错误”错误。

【问题讨论】:

标签: javascript node.js express ejs


【解决方案1】:

我的猜测是“未定义的错误”指的是errors.forEachvalidationResult() 的结果不是错误数组,它是一个带有 isEmpty()array() 之类的 getter 的对象,因此您可能需要稍微调整控制器代码。

查看the docs 获取一些示例。

【讨论】:

  • 请参阅上面的编辑以澄清抛出“未定义错误”错误的行。
猜你喜欢
  • 2015-10-24
  • 1970-01-01
  • 1970-01-01
  • 2021-10-26
  • 1970-01-01
  • 1970-01-01
  • 2017-02-10
  • 1970-01-01
  • 2012-02-23
相关资源
最近更新 更多