最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

得到错误:发送标头后无法设置标头

IT培训 admin 5浏览 0评论

得到错误:发送标头后无法设置标头

我想检查数据库在我的快速js api中是否已连接,但是它给了我错误Can't set headers after they are sent.,有人可以帮助我为什么我遇到此错误,在这里我添加了我的完整代码,有人可以吗看看并帮助我解决这个问题,

dbconnection.db :

{
        username: process.env.DB_USERNAME || '****',
        password: process.env.DB_PASSWORD || '',
        database: process.env.DB_DATABASE || '*****',
        host: process.env.DB_HOST || 'localhost',
        dialect: process.env.DB_DIALECT || 'mysql',
        logging: false,  
}

API : 
router.post('/', async (req, res) => {
    try {
        let connection = mysql.createConnection(dbconnection.db);
        connection.connect(function(err) {
            if (err) {
                res.statusCode = 500;
                return res.send(err.message).end();
            }
        });
        res.statusCode = 200;
        return res.send('OK').end(); 
    } catch (error) {
        res.statusCode = 500;
        return res.send(error).end();
    }
});
回答如下:

应在回调内部发送成功响应,如下所示:

router.post('/', async (req, res) => {
    try {
        let connection = mysql.createConnection(dbconnection.db);
        connection.connect(function(err) {
            if (err) {
                res.statusCode = 500;
                return res.send(err.message).end();
            } else {
                res.statusCode = 200;
                return res.send('OK').end(); 
        });

    } catch (error) {
        res.statusCode = 500;
        return res.send(error).end();
    }
});

得到错误:发送标头后无法设置标头

我想检查数据库在我的快速js api中是否已连接,但是它给了我错误Can't set headers after they are sent.,有人可以帮助我为什么我遇到此错误,在这里我添加了我的完整代码,有人可以吗看看并帮助我解决这个问题,

dbconnection.db :

{
        username: process.env.DB_USERNAME || '****',
        password: process.env.DB_PASSWORD || '',
        database: process.env.DB_DATABASE || '*****',
        host: process.env.DB_HOST || 'localhost',
        dialect: process.env.DB_DIALECT || 'mysql',
        logging: false,  
}

API : 
router.post('/', async (req, res) => {
    try {
        let connection = mysql.createConnection(dbconnection.db);
        connection.connect(function(err) {
            if (err) {
                res.statusCode = 500;
                return res.send(err.message).end();
            }
        });
        res.statusCode = 200;
        return res.send('OK').end(); 
    } catch (error) {
        res.statusCode = 500;
        return res.send(error).end();
    }
});
回答如下:

应在回调内部发送成功响应,如下所示:

router.post('/', async (req, res) => {
    try {
        let connection = mysql.createConnection(dbconnection.db);
        connection.connect(function(err) {
            if (err) {
                res.statusCode = 500;
                return res.send(err.message).end();
            } else {
                res.statusCode = 200;
                return res.send('OK').end(); 
        });

    } catch (error) {
        res.statusCode = 500;
        return res.send(error).end();
    }
});
发布评论

评论列表 (0)

  1. 暂无评论