晚安!我是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);
它不会通过控制器,服务器永远不会响应。提前感谢您的关注。
答案 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
方法。