Node.js:抛出新的错误('在发送之后不能设置标题。');

时间:2015-06-02 13:47:03

标签: node.js postgresql restful-authentication

每当执行此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));
});

});

1 个答案:

答案 0 :(得分:0)

问题是您无法多次拨打res.send。当你这样做时它结束了响应。如果您需要向客户端发送更多数据,则创建一个数据对象(var data = {})并添加您需要的所有内容。一切都完成后,在底部打电话给res.status(statusCode).send(data)