我使用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配置:
感谢您的帮助:)
答案 0 :(得分:0)
我认为你正在使用它:
const { check } = require('express-validator/check');
这个功能检查一切:身体,饼干,标题,参数,查询。根据你的截图,你没有发送密码,所以检查不知道它应该在哪里。
如果您希望密码在正文中,请使用
const {body, query, param} = require('express-validator/check');
body('password').exists()
第二个错误只是说你已经发送了标题(验证错误)并试图再次执行它(可能在catch中发送一些错误,dunno,共享你的控制器代码)