Я пишу Node JS API для входа в систему. Я написал логику, но при отправке ответа я столкнулся с проблемой. Вот мой код:
app.post('/API/login', (request, response) => {
model.findOne({ email: request.body.email }, (err, result) => {
if (err) throw err;
if (result) {
bcrypt.compare(request.body.password, result.password, function (error, hash) {
if (error) throw err;
if (hash) {
request.session.logged = true;
request.session._id = result._id;
response.send(result._id);
}
else {
response.send('Incorrect Username and/or Password!');
}
})
} else {
response.send('Incorrect Username and/or Password!');
}
response.end();
})
});
Однако я столкнулся с проблемой. Я продолжаю получать следующую ошибку:
Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
at ServerResponse.setHeader (_http_outgoing.js:470:11)
at ServerResponse.header (node_modules\express\lib\response.js:775:10)
at ServerResponse.json (node_modules\express\lib\response.js:268:10)
at ServerResponse.send node_modules\express\lib\response.js:162:21
at login.js:73:34
at node_modules\bcryptjs\dist\bcrypt.js:297:21
at node_modules\bcryptjs\dist\bcrypt.js:1353:21
at Immediate.next (node_modules\bcryptjs\dist\bcrypt.js:1233:21)
at runCallback (timers.js:705:18)
at tryOnImmediate (timers.js:676:5)
at processImmediate (timers.js:658:5)
Я не уверен, что является причиной этой проблемы.