簡體   English   中英

Node.js:拋出新的錯誤(“發送頭后無法設置頭。”);

[英]Node.js: throw new Error('Can\'t set headers after they are sent.');

每當執行此get API時,我都會不斷收到此錯誤。 我是node.js的新手,我真的迷路了,有人可以幫我看看我在做什么錯嗎?

app.get('/quote/:id', function(req, res) {

var results = [];
var userToken = [];

client1 = new pg.Client(connectionString);
client1.connect();
var query1 = client1.query('SELECT * FROM users WHERE access_token = $1', [req.body.access_token]);
query1.on('row', function(row){userToken.push(row);});
query1.on('end', function(result) {
    client1.end();
    if(userToken.length<1){
        res.status(401).send("Unauthorized");
    }
});

client2 = new pg.Client(connectionString);
client2.connect();
var query2 = client2.query('SELECT * FROM quotes WHERE quote_id = $1', [req.params.id]);
query2.on('row', function(row){results.push(row);});
query2.on('end', function(result) {
    client2.end();
    if(results.length<1){
        return res.status(404).send({"error":"NOT FOUND"});
    }
    return res.status(200).send(JSON.stringify(results));
});

});

問題是您不能多次調用res.send 當您這樣做時,它將結束響應。 如果您需要向客戶端發送更多數據,則創建一個數據對象( var data = {} )並添加所有需要的內容。 完成所有操作后,然后在底部調用res.status(statusCode).send(data)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM