Javascript 如何在AngularJS和nodejs中使用文件模型指令上载文件

Javascript 如何在AngularJS和nodejs中使用文件模型指令上载文件,javascript,angularjs,node.js,mean-stack,Javascript,Angularjs,Node.js,Mean Stack,您好,我正在使用MEAN Stack中的文件上载概念。但文件不是 上传。我使用了文件模型指令 这是我的angular controller.js文件函数 app.controller("usercontroller",function($scope,$http, $localStorage,$location,flash){ $scope.adduser = function(message) { $http({ method:"POS

您好,我正在使用MEAN Stack中的文件上载概念。但文件不是

上传。我使用了文件模型指令

这是我的angular controller.js文件函数

 app.controller("usercontroller",function($scope,$http, $localStorage,$location,flash){

$scope.adduser = function(message) 
    {


         $http({
            method:"POST",
            url:'api/adduser',
            data:{name:$scope.name,email:$scope.email,password:$scope.password,address:$scope.address,sex:$scope.sex,file:$scope.file},
                transformRequest:angular.identity,
                headers:{'Content-Type':undefined }
             }).then(function successCallback(response) {
              if(response.data.error){
                    $scope.error = response.data.error;

              }else{
                    $scope.Blog=response.data;
                    $localStorage.dd=$scope.Blog;
                    flash.setMessage(message);
                    $location.path('/allusers');
              }
              //console.log(response);
            }, function errorCallback(response) {
               alert("data is not comming here");
            });
    }

});  
我对控制器使用了上面相同的文件controller.js指令

app.directive('fileModel', function ($parse) {
      return {
        restrict: 'A',
        link: function(scope, element, attrs) {
          var model = $parse(attrs.fileModel);
          var modelSetter = model.assign;

          element.bind('change', function(){
            scope.$apply(function(){
              if (attrs.multiple) {
                modelSetter(scope, element[0].files);
              }
              else {
                modelSetter(scope, element[0].files[0]);
              }
            });
          });
        }
      };
    });
文件的输入类型为

 <div class="form-group">
       <label for="Phone_no" class="col-sm-3">ImageUpload</label>
       <div class="col-sm-4 @if($errors->has('Phone_no')) has-error @endif">
       <input class="form-control input-sm" name="files" file-model="file" type="file" >
   </div>
 </div>
然后在api.js文件中

module.exports.adduser = function (req, res)
{
    var user = new Usermodel();
    user.name = req.body.name;
    user.email = req.body.email;
    user.password = req.body.password;
    user.address = req.body.address;
    user.sex = req.body.sex;

    console.log(req.file.filename);

    user.save(function (err, data) {
        if (err)
        {
            //console.log(err);
            res.send(err);

        } else
        {
            //console.log("valueEnterd");
            res.send(data);
        }

    })
};
router.post('/adduser',userController.adduser)

这是userController.js文件

module.exports.adduser = function (req, res)
{
    var user = new Usermodel();
    user.name = req.body.name;
    user.email = req.body.email;
    user.password = req.body.password;
    user.address = req.body.address;
    user.sex = req.body.sex;

    console.log(req.file.filename);

    user.save(function (err, data) {
        if (err)
        {
            //console.log(err);
            res.send(err);

        } else
        {
            //console.log("valueEnterd");
            res.send(data);
        }

    })
};
这条线有错误

console.log(req.file.filename)

当我看到

console.log($scope.file); 
在angular controller.js文件中

结果是

lastModified:1458666536337
lastModifiedDate:Tue Mar 22 2016 22:38:56 GMT+0530 (India Standard Time)
name:"shahzad Qureshi.jpg"
size:81107
type:"image/jpeg"
webkitRelativePath:""
__proto__:File