我的编程空间,编程开发者的网络收藏夹
学习永远不晚

解决Cannot set headers after they are sent to the client

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

解决Cannot set headers after they are sent to the client

问题原因

出现Cannot set headers after they are sent to the client的原因,客户端发出一次请求,服务器给出两次及以上响应。

解决办法

建议大家排查一下接口,清除掉多余的响应。

// 第三方插件const mysql = require('mysql');// 数据库信息 let dbinfo = {    host: '127.0.0.1', //数据库的ip地址    user: 'root',      //登录数据库的账号    password: '123456',//数据库的密码    database: 'test', //数据库的名称    multipleStatements: true, // 支持执行多条 sql 语句}// 定义公共的数据库查询方法,传入三个参数 sql语句,res,参数:前两个为必传,参数不传默认为空数组let db = function (sql, res, params = []) {    return new Promise((resolve, reject) => {        // 一、新建一个连接池        let pool = mysql.createPool(dbinfo)        // 二、连接        pool.getConnection((error, connection) => {            // 三、使用sql语句操作            connection.query(sql, params, (err, results, fields) => {                if (err) {                // res是调用接口时,如果执行mysql执行出错,直接返回报错信息                    res.send({                        code: 500,                        status: false,                        msg: "服务器内部错误:" + err.message                    })                } else {                    resolve(results)                }                // 四、释放连接池                connection.release()            })        })    })}

调用db方法示例

// router是express框架的路由 , db为我们定义的mysql查询方法const { router , utilSuccess , utilErr , db  } = require('../../util/util');router.post('/deleteWxuser',   (req,res)=>{    let { id  } = req.body,    deleteSql =  'delete from wxuser where id in (?)';    db( deleteSql , res , [ id ] ).then( sqldata =>{        if( sqldata.affectedRows ){            res.send({                ...utilSuccess,                msg: "删除用户成功"            })        }else{            res.send({                ...utilErr,                msg: "删除用户失败",            })        }    })})

来源地址:https://blog.csdn.net/weixin_45481145/article/details/125455998

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

解决Cannot set headers after they are sent to the client

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

解决Cannot set headers after they are sent to the client

问题原因 出现Cannot set headers after they are sent to the client的原因,客户端发出一次请求,服务器给出两次及以上响应。 解决办法 建议大家排查一下接口,清除掉多余的响应。 // 第三方插
2023-08-18

编程热搜

目录