ng-file-upload卡住了

时间:2016-06-16 03:28:45

标签: angularjs mean-stack ng-file-upload

晚安!我是MEAN Stack的新手,我正在尝试使用ng-file-upload上传图片。这是角度代码:

app.controller('profilePicCtrl', ['Upload', '$scope', '$http', 
                      function(Upload,  $scope, $http){

    $scope.watch(function(){
        return $scope.file
    }, function(){
        $scope.upload($scope.file);
    });

    $scope.userID = localStorage.getItem('userID');
    $scope.upload = function(file){
        console.log("entro en upload");
        if(file){
            Upload.upload({
                url:'api/profile/edit',
                method:'POST',
                data: {userId: $scope.userID},
                file: file
            }).progress(function(evt, status){
                console.log("dale puej mijo ");
                console.log('percent: ' + parseInt(100.0 * evt.loaded / evt.total));
            }).success(function(data, status){
                console.log('archivo subido');
            }).error(function(error){
                console.log(error);
            })
        }
    };
}]);

以下是快递代码:

   module.exports.updatePhoto = function(req, res){
    var file = req.file;
    var userId = req.body.userId;
    console.log("User "+userId+ " is submitting ", file.name);
   }

最后一个是服务器端代码,我在其中调用控制器:

var multipart = require('connect-multiparty');
var multipartMiddleware = multipart();
var profileController = require('./routes/profile-controller');
...
app.post('api/profile/edit', multipartMiddleware, profileController.updatePhoto);

它不会通过控制器,服务器永远不会响应。提前感谢您的关注。

1 个答案:

答案 0 :(得分:0)

我有一个代码,不允许我进入与“GET'”不同的任何其他方法。下面这个是有罪的一个:

  if(req.method === "GET" || req.method === "POST"){
    if(!req.isAuthenticated()) {
        res.redirect('/#login');
    }else{
        return next();
    }
 }

而不是我在or只有if句子中的req.method==='GET句子,这导致我的代码进入无限循环,返回next()方法但找不到一个。现在使用or句子,我的代码转到POST方法。