newpost: async (req, res, next) => {
try {
const postData = {
title: req.body.title,
description: req.body.description,
user: req.user.userId
}
const post = await Post.create(postData)
if (!post) {
return res.status(404).json({ error: "No post found" })
}
const user = await User.findById(req.user.userId)
user.posts.push(post._id)
user
.save()
.then(() => {
return res.json(200).json( { user })
})
} catch(error) {
return next(error)
}
}
Здесь я получаю эту ошибку в своем терминале:
POST /api/v1/posts/new 200 278.118 ms - 3
(node:4750) UnhandledPromiseRejectionWarning: Error: Can't set headers after they are sent.
at validateHeader (_http_outgoing.js:491:11)
at ServerResponse.setHeader (_http_outgoing.js:498:3)
at ServerResponse.header (/home/Desktop/myApp/node_modules/express/lib/response.js:767:10)
at ServerResponse.send (/home/Desktop/myApp/node_modules/express/lib/response.js:170:12)
at ServerResponse.json (/home/Desktop/myApp/node_modules/express/lib/response.js:267:15)
at user.save.then (/home/Desktop/myApp/controllers/postsController.js:24:34)
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7)
(node:4750) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:4750) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
Время от времени я сталкиваюсь с этими типами ошибок. Я думаю, это связано с тем, как отправляется ответ, верно?
Какой лучший совет, чтобы избежать этих "UnhandledPromiseRejectionWarning: Ошибка: невозможно установить заголовки после того, как они отправлены" ошибки?
Спасибо.