繁体   English   中英

角推法

[英]Angular Put Method

我正在尝试使用$ http.put进行Angular更新。 当我执行console.log,但是当我执行$ http.put请求时,数据已成功从表单传递到客户端控制器。 它以PUT http:// localhost:3000 / articles 500(内部服务器错误)的形式返回。

这是客户端article.controller.js:

$scope.updateArticle = function(){
    var data = {
        id:         $routeParams.id, 
        title:      $scope.article.title, 
        body:       $scope.article.body, 
        category:   $scope.article.category
    }
    console.log(data);

    $http.put('/articles', data).success(function(data, status){
        console.log('abc');

    });



    $location.path('/articles');


}

这是articles.js的服务器端路由:

router.put('/', function(req, res, next){
    var id = req.body.id;

    var data = {
        title: req.body.title, 
        category: req.body.category, 
        body: req.body.body
    };

    Article.updateArticle(id, data, function(err, article){
        if(err){
            console.log(err);
        }

        res.location('/articles');
        res.redirect('/articles');
    }); 
});

这是模型article.js:

module.exports.updateArticle = function(id, data, callback){
    var title = data.title; 
    var body = data.body; 
    var category = data.category; 

    var query = {_id: id};

    Article.findById(id, function(err, article){
        if(!article){
            return next(new Error('Could not load article'));
        } else {
            article.title = title; 
            article.body = body; 
            article.category = category; 

            article.save(callback);
        }
    })
}

您为什么不尝试直接建立针对“ / articles”的router.put路由? 您的articles.js文件应如下所示:

router.put('/articles', function(req, res, next){
    console.log("Hit my route!");
    //etc... 
}); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM