[英]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.