簡體   English   中英

使用node.js讀取對象屬性

[英]Read object properties with node.js

我的node.js服務器從帶有ajax發布請求的表單接收數據。 表單編碼為"multipart/form-data" 我發送三個字符串和一個圖像,發現訪問這些數據的最佳方法是使用"multiparty"模塊。 這是情況

dispatcher.addListener("post", "/admin/req", function(req, res) {
  // parse a file upload
var form = new multiparty.Form({uploadDir: __dirname + "/tmp"});

form.parse(req, function(err, fields, files) {

  console.log(util.inspect({fields: fields, files: files}));
  console.log(files['img_event']);
  });
 });

這是支出

//first log
     { fields: 
       { name_event: [ 'blablabla' ],
         data_event: [ 'blabla' ],
        },
      files: { img_event: [ [Object] ] } }

//second log
    [ { fieldName: 'img_event',
        originalFilename: 'screenshot 2014-10-11 16:57:54.png',
        path: '/home/myusername/Desktop/nodeapp/tmp/15620-v12gsy.png',
        headers: 
         { 'content-disposition': 'form-data; name="img_evento"; filename="Schermata del 2014-10-11 16:57:54.png"',
           'content-type': 'image/png' },
        ws: 
         { _writableState: [Object],
           writable: true,
           domain: null,
           _events: [Object],
           _maxListeners: 10,
           path:  '/home/myusername/Desktop/nodeapp/tmp/15620-v12gsy.png',
           fd: null,
           flags: 'w',
           mode: 438,
           start: undefined,
           pos: undefined,
           bytesWritten: 149910,
           closed: true },
        size: 149910 } 

現在,如果我嘗試通過以下方式訪問屬性“ path”或其他任何屬性:

  console.log(files['img_event'].path);
  or
  console.log(files['img_event']['path'];

它總是返回"undefined"

怎么了 ?

因為files['img_event']是一個數組,而不是對象。 您可以像這樣確認

console.log(Object.prototype.toString.call(files['img_event']));
// [object Array]

因此,您需要像這樣訪問數組中的第一個元素

files['img_event'][0].path

暫無
暫無

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

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