2015-12-21 2 views
0

Я новичок в JavaScript и Node JS. У меня есть следующий код:Невозможно установить заголовки после отправки ошибки. Узел JS

app.post('/sendSensorsUserIds', function (req, res) { 
    var myBody= req.body; 
    var sensors= myBody.Sensors; 
    var ids= myBody.ids; 
    DButils.getSensorsUserIds(connection, ids , sensors , function(ids){ 
    return res.sendStatus(ids); 
    }); 
    res.end(); 
}); 

Я всегда получаю следующее сообщение об ошибке:

C:\Users\Daniel\Server\node_modules\mysql\lib\protocol\Parser.js:82 
     throw err; 
     ^

Error: Can't set headers after they are sent. 

кто-то имеет какие-либо идеи, что это проблема?

+1

Возможная Дубликат [Ошибка Node.js: Не удается установить заголовки после того, как они отправляются] (http://stackoverflow.com/questions/7042340/node-js-error-cant- set-headers-after-they-are-sent) –

+0

Вам не нужно «res, end» внизу. И, вероятно, вы имели в виду 'res.json (ids)' в обработчике запросов db –

+0

, вы уверены, что мне не нужен res.end() в конце? –

ответ

-1

Это потому, что вы отправляете статус после выполнения res.send(). Попробуйте удалить res.send();

app.post('/sendSensorsUserIds', function (req, res) { 
    var myBody= req.body; 
    var sensors= myBody.Sensors; 
    var ids= myBody.ids; 
    DButils.getSensorsUserIds(connection, ids , sensors , function(ids){ 
    return res.sendStatus(ids); 
     }); 

}); 
0

res.end() вызывается перед обратным вызовом в DButils.getSensorsUserIds. я предлагаю,

app.post('/sendSensorsUserIds', function (req, res) { 
    var myBody= req.body; 
    var sensors= myBody.Sensors; 
    var ids= myBody.ids; 
    DButils.getSensorsUserIds(connection, ids , sensors , function(ids){ 
    return res.status(ids).end(); 
    }); 

}); 
Смежные вопросы