【发布时间】:2022-02-02 02:33:51
【问题描述】:
我有这个 Mongoose/Express 代码,可让您更新登录用户的文档。我收到一个错误: 节点:事件:368 投掷者; // 未处理的“错误”事件 ^
错误 [ERR_HTTP_HEADERS_SENT]:发送到客户端后无法设置标头
这是我的代码。
router.post("/update/:id", checkAuth, (req, res) => {
// check if the snippet was created by the user who is logged in and update the snippet with the new data from the request body
Snippet.findOne({
_id: req.params.id,
userId: req.userData.userId,
})
.then((snippet) => {
if (!snippet) {
return res.status(400).json({
message: "You don't have a snippet with this ID",
});
}
if (req.body.title) {
console.log("if statement");
Snippet.findOne(
{
title: req.body.title,
userId: req.userData.userId,
},
(titleCheckErr, titleCheckSnippet) => {
if (titleCheckErr) {
return res.status(500).json({
error: titleCheckErr,
});
}
if (titleCheckSnippet) {
return res.status(400).json({
message:
"You already have a snippet with that title",
});
}
}
);
snippet.title = req.body.title;
}
snippet.description = req.body.description;
snippet.code = req.body.code;
snippet.language = req.body.language;
// save the snippet
snippet.save((saveSnippetErr, saveSnippet) => {
if (saveSnippetErr) {
return res.status(500).json({
error: saveSnippetErr,
});
}
return res.status(201).json({
message: "Snippet updated",
snippet: saveSnippet,
});
});
})
.catch((err) => {
return res.status(500).json({
error: err,
});
});
});
【问题讨论】:
-
“if(req.body.title)”语句后面的代码是不是总是需要运行,还是else情况?
标签: javascript node.js express mongoose