为什么我不能在节点中的变量中以毫秒为单位存储修改时间?

时间:2017-09-21 00:27:41

标签: node.js

我正在尝试返回一个等效文件数组,其中内部数组包含最后一个修改过的文件作为第0个索引。我能够通过存储mtime属性来使它工作,但我很好奇为什么我不能将mtimeMs属性的值存储在数组中的fileStats对象上,因为它的数据类型是数字。

我的代码在

下面
var walk = require('walk'), fs = require('fs'), walker;
var path = require('path');
// console.log(walk.walk);

  walker = walk.walk(path.join(__dirname, "/testAll"));

  let fileData = {};
  let results = [];

walker.on('file', function (root, fileStats, next) {
  // console.log('root is: ', root, 'fileStats is: ', fileStats, 'next is: ', next);
  fs.readFile(path.join(root, fileStats.name), 'utf8', function (err, data) {
    if (fileData[data]) {
      fileData[data][1] < fileStats.mtimeMS ? 
        results.push([fileStats.name, fileData[data][0]]) : 
        results.push([fileData[data][0], fileStats.name])
    } else {
      fileData[data] = [fileStats.name, fileStats.mtimeMS]; //undefined is added as the 1st index of this array
    }
    next();
  });
});

walker.on('end', () => {
  console.log(results);
})

0 个答案:

没有答案