javascript - 使用node.js读取对象属性

标签 javascript arrays node.js

我的 node.js 服务器通过 ajax post 请求从表单接收数据。表单 enctype 为“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'];

它总是返回“未定义”

出了什么问题?

最佳答案

因为,files['img_event']是一个数组,而不是一个对象。您可以这样确认

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

因此,您需要访问数组中的第一个元素,如下所示

files['img_event'][0].path

关于javascript - 使用node.js读取对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26341265/

相关文章:

java - 使用 ArrayList 而不是数组来避免使用普通的 for 循环

javascript - 使用 for 循环组合两个数组

javascript - 获取n个数组的交集

javascript - RxJS 方法导致回调 hell

node.js - NodeJS - 如何解决本地模块上的 “Cannot find module” 错误?

javascript - Mongoose : Merging two documents that reference each other

javascript - 检测 IE 的 Metro UI 版本

javascript - 匹配一个序列,除非它前面有另一个带有正则表达式的序列(Javascript)

mysql - 如何在 Node mysql 中使用 IF EXISTS 语句?

javascript - 当用户点击 "quick replies"按钮时如何打开 webview?