最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

为什么当我打它从邮递员下面的函数被卡住?

IT培训 admin 3浏览 0评论

为什么当我打它从邮递员下面的函数被卡住?

我试图更新的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
                        });
                    }
                });
            }
        }
    });
},
回答如下:

基本上,你的代码看起来很好(我只是读它,没有测试它!)。但可能有问题时,例如一个异常同步引发。这可能发生,例如,在调用fs.unlinkSync(请注意,我不是说有问题是在这条线,这只是一个例子)。

如果发生这种情况,那么这条路线的进一步执行停止,你将永远不会接受的结果。同样可以在其他地方发生的一样,所以也许try / catch各地导致发送500将是一个不错的主意一切。

为什么当我打它从邮递员下面的函数被卡住?

我试图更新的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
                        });
                    }
                });
            }
        }
    });
},
回答如下:

基本上,你的代码看起来很好(我只是读它,没有测试它!)。但可能有问题时,例如一个异常同步引发。这可能发生,例如,在调用fs.unlinkSync(请注意,我不是说有问题是在这条线,这只是一个例子)。

如果发生这种情况,那么这条路线的进一步执行停止,你将永远不会接受的结果。同样可以在其他地方发生的一样,所以也许try / catch各地导致发送500将是一个不错的主意一切。

发布评论

评论列表 (0)

  1. 暂无评论