MEAN堆栈删除操作未正确完成。 ERR_EMPTY_RESPONSE

时间:2015-09-28 05:26:00

标签: mean

在做MEAN教程的同时,我已经从mongo(通过mongoose)删除了这些优秀的代码

    $scope.removeArticle = function(id){
        $http.delete('/articles/' + id)
            .success(function(data){
               console.log(data);
            });
        $location.path('/articles');
    }

console.log打印出一个漂亮的200, 但是$ location.path永远不会发生,因为服务器端出了问题。 (错误在底部)

这是成功捕获$ http请求的routes / articles.js文件

router.delete('/:id', function(req,res,next){
    var id = req.params.id;
    Article.removeArticle(id, function(err, article){
        if (err) console.log(err);
        res.location('/articles');
        res.redirect('/articles');
    });
});

以下是从db

成功删除文章的models / article.js
module.exports.removeArticle = function(id, callback){   
    Article.findById(id, function(err, article){
        if(!article) return next(new Error('Could not load article'));
        article.remove(callback);
    });
};

我的服务器日志说明了这个

DELETE /articles 200 120010ms
DELETE /articles 200 120008ms
DELETE /articles 200 120006ms

我的Chrome控制台说明了这个

DELETE http://localhost:3000/articles net::ERR_EMPTY_RESPONSE

并且该教程以此状态结束。有人看到我错过了吗?

1 个答案:

答案 0 :(得分:1)

从我发布的代码中可以看出,这里的问题是路线实际上并没有处理成功。您应该将JSON对象和状态代码一起返回给客户端,而不是重定向调用。

成功删除时的重定向应该在客户端处理,但是你需要将调用放在.success函数中,因为在某些情况下,可能会在.success之前调用位置处理程序有机会完成。