(Express Validator)req.check不起作用

时间:2018-03-23 11:18:30

标签: javascript node.js express body-parser express-validator

我使用Express Validator作为更新表单。 但是当我运行我的功能时,我有这个错误。

Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client

我检查了所有代码,我认为对POST有一点反应

{
    "errors": [
        {
            "location": "params",
            "param": "password",
            "msg": "password is required"
        },
        {
            "location": "body",
            "param": "confirmPassword",
            "msg": "password and passwordConfirm are not equals",
            "value": "amazingPassword"
        }
    ]
}

我不明白为什么密码的位置在" params" ?? 我的所有变量都在location body中,但是password和confirmPassword都在位置参数中。

我不知道我是否清楚。 Express Validator没问题,问题是已向客户端发送响应的节点崩溃。

我的应用程序使用正文解析器,var密码的副本,有可能吗?

我的POSTMAN配置: My POSTMAN configuration

感谢您的帮助:)

1 个答案:

答案 0 :(得分:0)

我认为你正在使用它:

const { check } = require('express-validator/check');

这个功能检查一切:身体,饼干,标题,参数,查询。根据你的截图,你没有发送密码,所以检查不知道它应该在哪里。

如果您希望密码在正文中,请使用

const {body, query, param} = require('express-validator/check');
body('password').exists()

第二个错误只是说你已经发送了标题(验证错误)并试图再次执行它(可能在catch中发送一些错误,dunno,共享你的控制器代码)