为啥当我从邮递员那里点击以下功能时,它会卡住?
Posted
技术标签:
【中文标题】为啥当我从邮递员那里点击以下功能时,它会卡住?【英文标题】:Why does the following function gets stuck when I hit it from postman?为什么当我从邮递员那里点击以下功能时,它会卡住? 【发布时间】:2019-07-04 22:26:53 【问题描述】:我正在尝试在以下函数中更新 MongoDB 中的记录,但有时当我从邮递员到达端点时它会卡住,我不知道为什么会这样?帮我找出这里的问题
update: (req, res) =>
let id = req.params.id;
let image = req.file.path;
let newPost =
title: req.body.title,
slug: req.body.slug,
body: req.body.body,
image: image
;
Post.findOne(_id: id, (err, post) =>
if(err)
return res.status(403).json(
errors: err.errors
);
else
if(!post)
res.status(404).json(
message: "Post not found"
);
else
let oldImage = post.image;
Post.updateOne(_id: id, newPost, (err, post) =>
if(err)
return res.status(403).json(
errors: err.errors
);
else
if(oldImage)
fs.unlinkSync(oldImage);
return res.status(200).json(
post
);
);
);
,
【问题讨论】:
【参考方案1】:基本上,您的代码看起来不错(我只阅读过,没有测试过!)。但是可能会出现问题,例如同步抛出异常。例如,这可能发生在对fs.unlinkSync
的调用中(请注意,我并不是说问题出在这一行,这只是一个示例)。
如果发生这种情况,则该路由的进一步执行将停止,您将永远不会收到结果。同样的情况也可能发生在其他地方,所以在所有导致发送500
的内容周围加上try
/catch
可能是个好主意。
【讨论】:
以上是关于为啥当我从邮递员那里点击以下功能时,它会卡住?的主要内容,如果未能解决你的问题,请参考以下文章
axios在20秒内给出响应,但具有相同请求有效载荷的相同api在6秒内从邮递员那里得到响应
当我从 SQL Server 代理运行 Python 脚本时,为啥它会失败?