【Node】Cannot set headers after they are sent to the client,解决方案

在这里插入图片描述

/**
* 模块名称: 用户注册处理函数
* 代码描述:
* Author:yang_xiaoyang
* 创建时间:2023/03/14 12:58:47
*/
exports.regUser = (req,res)=>{
    
    
  // 获取客户端提交到服务器的信息
  const userInfo = req.body
  // 对表单中的数据进行合法校验
  if(!userInfo.username || !userInfo.password){
    
    
    return res.send({
    
    status:1,message:'用户名或密码不合法!'})
  }

  // 定义SQL语句
  const sqlStr = 'select * from bg_users where username=?'
  db.query(sqlStr,[userInfo.username],(err,results)=>{
    
    
    // 执行SQL语句失败
    if(err){
    
    
      return res.send({
    
    status:1,message:err.message})
    }
    // 判断用户名是否被占用
    if(results.length>0){
    
    
      return res.send({
    
    status:1,message:'用户名被占用,请更换其它用户名!'})
    }
    // TODO:用户名可用
  })
  /**
   * 注意事项:Cannot set headers after they are sent to the client。
   *  案发现场:客户端发送1次请求,服务端2次响应。造成的错误。
   *  解决方式:在这里不再做出响应,return结束。
   *  //  return res.send('reguser OK!!!')
   */
  return;
}

猜你喜欢

转载自blog.csdn.net/YBJ2022/article/details/129527782