【发布时间】:2021-09-02 07:43:45
【问题描述】:
我有以下代码块:
router.put("/:_id", async (req: Request, res: Response) => {
try {
// Create the updated artist variable
const artist: IArtist = req.body;
const updatedArtist = await Artist.findOneAndUpdate({_id: req.params._id}, artist);
return res.sendStatus(200).json(updatedArtist);
} catch (err) {
// console.log(err);
return res.sendStatus(400).send("Couldn't update artist");
}
});
这会引发以下错误:
(node:32408) UnhandledPromiseRejectionWarning: Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
at ServerResponse.setHeader (_http_outgoing.js:561:11)
at ServerResponse.header (C:\Users\thimo\Documents\GitHub\FlexTix\server\node_modules\express\lib\response.js:771:10)
at ServerResponse.contentType (C:\Users\thimo\Documents\GitHub\FlexTix\server\node_modules\express\lib\response.js:599:15)
at ServerResponse.sendStatus (C:\Users\thimo\Documents\GitHub\FlexTix\server\node_modules\express\lib\response.js:357:8)
at C:\Users\thimo\Documents\GitHub\FlexTix\server\src\routes\artists.ts:44:20
at step (C:\Users\thimo\Documents\GitHub\FlexTix\server\src\routes\artists.ts:33:23)
at Object.next (C:\Users\thimo\Documents\GitHub\FlexTix\server\src\routes\artists.ts:14:53)
at fulfilled (C:\Users\thimo\Documents\GitHub\FlexTix\server\src\routes\artists.ts:5:58)
at processTicksAndRejections (internal/process/task_queues.js:95:5)
据我所知,我只发送一个标头。我该如何解决这个问题?
【问题讨论】:
-
顺便说一句,函数本身就是更新Mongo数据库中的Artist
标签: javascript node.js typescript express