【问题标题】:How do I display this Error to users in Expressjs如何在 Expressjs 中向用户显示此错误
【发布时间】:2020-09-16 02:31:09
【问题描述】:

我如何访问名字、姓氏、电子邮件和密码。 示例:如果 firstname 存在,我如何访问并向用户显示错误,例如 firstname.msg。

[{"firstname":{"value":"","msg":"Firstname is required","param":"firstname","location":"body"},"lastname":{"value":"","msg":"Lastname must not contain number or symbol","param":"lastname","location":"body"},"email":{"value":"","msg":"Email is required","param":"email","location":"body"},"password":{"value":"","msg":"Password is required","param":"password","location":"body"}}]

【问题讨论】:

    标签: node.js express ejs


    【解决方案1】:

    将数组保存到变量中,例如results。然后使用.map()遍历每个results对象,检查是否定义了msg属性;如果是,请将它们保存到新的 errors 数组中。如果没有定义msg 属性,则返回undefined

    然后我们使用.filter() 立即删除所有undefined 的元素,使errors 数组仅包含与results 数组中的msg 字段相等的字符串元素。

    最后,我们正在检查errors 数组中是否有任何元素,如果有,则返回第一个元素(错误消息);表达它会是这样的:

    if(errors.length > 0) return res.status(400).json(errors[0]);.

    这将始终返回函数遇到的第一个错误。

    const results = [{"firstname":{"value":"","msg":"Firstname is required","param":"firstname","location":"body"},"lastname":{"value":"","msg":"Lastname must not contain number or symbol","param":"lastname","location":"body"},"email":{"value":"","msg":"Email is required","param":"email","location":"body"},"password":{"value":"","msg":"Password is required","param":"password","location":"body"}}]
    
    const errors = results
        .map(({ firstname, lastname, email, password }) => {
            if(firstname.msg) return firstname.msg;
            else if (lastname.msg) return lastname.msg;
            else if (email.msg) return email.msg;
            else if (password.msg) return password.msg;
            else return;
        })
        .filter(error => error);
    
    if(errors.length > 0) return errors[0];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-11
      • 1970-01-01
      • 2021-09-18
      • 2013-11-29
      • 2019-06-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多