簡體   English   中英

node.js 中的數組長度

[英]array length in node.js

我有從 angular js 返回到 node js 的表單對象,它在控制台中看起來像這樣,

對於兩個文件,

filenames : [object Object],[object Object] # filenames object for two files
length: 2 # used object.length

對於一個文件,

filenames : [object Object] # filenames object for one file
length: undefined # used object.length

我是 Node js 的新手,有人能解釋一下為什么會這樣嗎?

已編輯

ProfileController.js(客戶端)

var fd = new FormData()
var filenames = $scope.postTextOrImageParams.imageUrl;
for( var i = 0; i < filenames.length; i++ ) {
     fd.append("imageData",$scope.postTextOrImageParams.imageUrl[i]);  
}

user.js(服務器端)

var filenames = req.files.imageData;
console.log(typeof filenames);   //-> object
console.log('filenames : '+filenames);
console.log('length: '+filenames.length); 


 function uploader(i) {

 if( i < filenames.length ) { 
         utils.saveMediaPic(filenames[i],function(error,savedImagePath){
      if( error ) {
          console.log('error: '+error)
       }
      else {
          console.log("SAVED IMAGE ====>"+savedImagePath);
          post.content.imageUrl.push(savedImagePath);

          uploader(i+1)
          }
    });
}

如果在正文中有多個同名參數,則 bodyParser 將生成一個數組。 您的問題是,當您只有一個參數時,情況並非如此。

為了強制這樣做,您可以在擴展版本中使用 bodyParser。

app.use(bodyParser.urlencoded({ extended: true }));

並使用方括號 imageData[] 調用參數

fd.append("imageData[]",... 

您可以在文檔http://npmjs.com/package/qs#readme 中找到

這將觸發擴展解析器始終返回一個數組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM