成功解决node报错:Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client

文章讲述了在处理POST请求到/register路径的注册功能时,如何修正因多次调用res.json()导致的错误。通过检查请求参数,确保只发送一次响应,并在出现错误时利用return或next()方法控制流程,将错误传递给错误处理中间件。经过修改,注册功能现在能正确响应并处理各种错误情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在编写一个路由处理程序的时候,处理POST请求到‘register’路径。

router.post('/register',function (req,res,next){
    //request.setCharacterEncoding("UTF-8");
    if (!req.body.username) {
        res.json({status: 1, message: "用户名为空"})
    }
    if (!req.body.password) {
        res.json({status: 1, message: "密码为空"})
    }
    if (!req.body.userMail) {
        res.json({status: 1, message: "用户邮箱为空"})
   }
    if (!req.body.userPhone) {
        res.json({status: 1, message: "用户手机为空"})
    }
    user.findByUsername(req.body.username, function (err, userSave){
        if (userSave.length != 0) {
            //返回错误信息
            res.json({status: 1, message: "用户已注册"})
        } else {
            var registerUser = new user({
                username: req.body.username,
                password: req.body.password,
                userMail: req.body.userMail,
                userPhone: req.body.userP
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值