Такая цепочка обещаний
Что вы можете сделать, это
A) return null
ПОСЛЕ res.status(HttpStatus.NOT_FOUND)
(удаление return
перед этим кодом)
B) в then(result
проверьте, если результат равен нулю, если это так, пропустите res.status(...
код
например
'use strict'
const HttpStatus = require('http-status-codes')
const { handleErr } = require('ciitizen-express-helpers').utils
function updateOrganization(db, stats) {
return function (req, res) {
db.organization.findOne({
where: {
id: req.params.id
}
})
.then(result => {
if (result === null) {
// change A
res.status(HttpStatus.NOT_FOUND).send();
return null;
}
// snip
return result.save()
})
.then(result => {
console.log('final result = ', result)
// change B
if (result !== null) {
return res.status(HttpStatus.CREATED).send(result)
}
})
.catch(err => {
req.log.error(err)
return handleErr(res, HttpStatus.INTERNAL_SERVER_ERROR, err.message)
})
}
}
module.exports = updateOrganization
или сохраните существующий код до
.then(result => {
// change C
if (!res.headersSent) {
console.log('final result = ', result)
return res.status(HttpStatus.CREATED).send(result)
}
})
Это, наверное, "чище", если честно