Я получаю сообщение "Не удается установить заголовки после их отправки клиенту", эта ошибка в моем API.Я понимаю, что отправляю ответ несколько раз назад, что вызывает проблему, но я не уверен, как ее исправить.
Ошибка возникает, когда возникает ошибка knex при первом вызове db res.status(500)
, которыйвозвращает / отправляет ответ клиенту.Проблема в том, что я не уверен, как завершить код там, или я должен даже закончить его вообще?Я знаю, что, возможно, смогу связать свои обещания так, что этого не произойдет, но я верю, что в конечном итоге это будет чище с async / await.
В настоящее время я заставляю свой код перейти в блок catch при первом вызове базы данных.И я знаю, что при возврате / отправке res.sendStatus(200)
.
возникает ошибка «Не удается установить заголовки после того, как они отправлены клиенту». Что является хорошим решением этой проблемы?
let existingUser = await knex('user').where({ username }).orWhere({ email }) // <-- first db call
.then(([user]) => user)
.catch(() => res.status(500))
if (!existingUser) {
knex('user').insert({
username,
password_digest,
}) // <-- second db call
.then(() => res.sendStatus(200))
.catch(() => res.sendStatus(500))
} else {
return () => res.sendStatus(409)
}
Заранее спасибо сообществу Stackoverflow!