Node.js 如何将文件附加到post请求节点?

Node.js 如何将文件附加到post请求节点?,node.js,angularjs,upload,angularjs-directive,Node.js,Angularjs,Upload,Angularjs Directive,我使用nodejs上传文件。我正在尝试下面的链接。但是不知道如何发布这些东西。我需要将JSON数据与文件一起发布。我该怎么办 函数myCtrl(){ //选定的文件数组 $scope.files=[]; //侦听所选文件事件 $scope.$on(“fileSelected”,函数(事件,参数){ 警报(“所选文件:”) $scope.$apply(函数(){ //将文件对象添加到作用域的文件集合 $scope.files.push(args.file); }); }); //保存方法 $sco

我使用nodejs上传文件。我正在尝试下面的链接。但是不知道如何发布这些东西。我需要将JSON数据与文件一起发布。我该怎么办

函数myCtrl(){
//选定的文件数组
$scope.files=[];
//侦听所选文件事件
$scope.$on(“fileSelected”,函数(事件,参数){
警报(“所选文件:”)
$scope.$apply(函数(){
//将文件对象添加到作用域的文件集合
$scope.files.push(args.file);
});
});
//保存方法
$scope.save=函数(文件名){
$http({
方法:“POST”,
url:“http://localhost:3000/uploadfile",
标题:{“内容类型”:false},
//此方法将允许我们更改向上发送数据的方式
//我们需要为其封装模型数据的服务器
//在“FormData”中
转换请求:功能(数据){
var formData=new formData();
append(“model”,angular.toJson(data.model));
对于(var i=0;i
这里是我的角度指令“文件上传”,我用来识别要上传的选定文件

angular.module('myApp',[]).directive('file-upload',function(){
返回{
scope:true,//创建一个新的作用域
链接:功能(范围、el、属性){
el.bind(‘变更’、功能(事件){
var files=event.target.files;
//迭代文件,因为可能存在“多个”
//在元素上指定

对于(var i=0;i我在代码中没有看到任何ng单击。 正确的方法是绑定到“更改”事件,这似乎就是您正在做的事情。 您可以使用轻量级库,它通过一个指令完成您想要的功能。 它还支持带有flash polyfill的IE9,因为IE9不支持FormData

<script src="angular.min.js"></script>
<script src="angular-file-upload.js"></script>

<div ng-controller="MyCtrl">
  <input type="file" ng-file-select="onFileSelect($files)" multiple>
</div>

JS:

//插入角度文件上载指令。
angularFileUpload模块('myApp',['angularFileUpload']);
var MyCtrl=['$scope','$http',函数($scope,$http){
$scope.onFileSelect=函数($files){
//$files:选定文件的数组,每个文件都有名称、大小和类型。
对于(变量i=0;i<$files.length;i++){
var$file=$files[i];
$http.uploadFile({
url:'my/upload/url',
文件:$file
}).then(函数(数据、状态、标题、配置){
//文件已成功上载
控制台日志(数据);
}); 
}
}
}];
//inject angular file upload directive.
angular.module('myApp', ['angularFileUpload']);

var MyCtrl = [ '$scope', '$http', function($scope, $http) {
  $scope.onFileSelect = function($files) {
    //$files: an array of files selected, each file has name, size, and type.
    for (var i = 0; i < $files.length; i++) {
      var $file = $files[i];
      $http.uploadFile({
        url: 'my/upload/url',
        file: $file
      }).then(function(data, status, headers, config) {
        // file is uploaded successfully
        console.log(data);
      }); 
    }
  }
}];