Javascript对象属性(在节点中)未记录或使用其他名称记录

时间:2016-05-19 15:14:14

标签: node.js formidable

我正在使用来自felixge的Node强大的软件包。这是一个Javascript问题,而不是一个强大的问题,或者我认为。

如果我在MYOBJ上执行console.log,我会得到以下内容:

full_filename = os.path.join(dirpath, filename) 
if os.path.isfile(full_filename):
    print(full_filename, hashlib.md5(open(full_filename, 'rb').read()).digest())

如果我执行console.log,请执行以下操作:

{ file1: 
  File {
   domain: null,
   _events: {},
   _eventsCount: 0,
   _maxListeners: undefined,
   size: 62464,
   path: 'myDir/upload_e79d8d551721e2f399afbc39d5d5eaab.doc',
   name: 'somefile.doc',
   type: 'application/msword',
   hash: null,
   lastModifiedDate: Thu May 19 2016 20:22:24 GMT+0530 (IST),
   _writeStream: 
    WriteStream {
      _writableState: [Object],
      writable: true,
      domain: null,
      _events: {},
      _eventsCount: 0,
      _maxListeners: undefined,
      path: 'uploadDir/upload_1e0e9625e27f5c5172eaf5d18172f946.doc',
      fd: null,
      flags: 'w',
      mode: 438,
      start: undefined,
      pos: undefined,
      bytesWritten: 62464,
      closed: true } } }

我得到以下内容:

for (var filename in MYOBJ)  
  console.log(MYOBJ[filename]);

我显而易见的问题是:

为什么" file1"的其他属性?没显示?可能是他们不是对象" ownProperty"?即便如此,为什么" lastModifiedDate"成为" mtime?"

1 个答案:

答案 0 :(得分:1)

让我猜一下...... cosnole.log的实施可能会使用Object.getOwnPropertyDescriptor()并列出所有不可枚举的值

var o = {}
Object.defineProperty(o, 'nonEnumerableValue', {value: 1})


console.log(o) // {}
console.log(o.nonEnumerableValue) // 1