【问题标题】:How to display express validator errors in a div如何在 div 中显示快速验证器错误
【发布时间】:2022-11-23 01:30:58
【问题描述】:

我正在使用快速验证器来验证表单并且我能够获得结果,但是我不确定如何将它显示到我的 EJS 文件中。

        const errors = validationResult(req);
        if (!errors.isEmpty()) {
           let error = errors.array().map(i => `${i.msg}`).join(' ');
           res.render('sell', { title: 'Sell', error: errors });
        }

ejs文件

                    <% if (error != null) { %>
                        <div class="alert alert-danger">
                                <%= error %>
                        </div>

                            <% } %>

此代码仅在一行中返回错误,我希望它在自己的 alert div 中显示错误。

【问题讨论】:

    标签: node.js ejs express-validator


    【解决方案1】:

    为这样的错误创建一个 for 循环

    <% if (error !=null) { %>
        <% for (const err of error) { %>
          <div class="alert alert-danger">
            <%= err %>
          </div>
        <% } %>
    <% } %>
    

    我实际上会把它重命名为错误,因为它是复数

    【讨论】:

    • 错误仍然在一行中,但在不同的 div 中。所以它显示为&lt;div&gt;error 1, error2&lt;/div&gt;&lt;div&gt;error 1, error2&lt;/div&gt;而不是&lt;div&gt;error1&lt;/div&gt;&lt;div&gt;error2&lt;/div&gt;。我认为问题可能出在我的错误处理上,但感觉我已经尝试了所有方法,但仍然无法正常工作。
    • 哦,抱歉,编辑了评论,将 error 更改为 err,这是一个打字错误,如果您现在尝试,它将起作用
    • 非常感谢,一切正常,几天来我一直在努力解决这个问题。
    • 顺便说一句,循环缺少一个结束标记,供将来也需要它的人使用。
    • @Chris 解决了这个问题,这就是你在没有 IDE 的情况下编写时会发生的事情
    猜你喜欢
    • 1970-01-01
    • 2019-09-27
    • 2020-10-01
    • 1970-01-01
    • 2020-09-18
    • 1970-01-01
    • 1970-01-01
    • 2011-04-18
    • 1970-01-01
    相关资源
    最近更新 更多