0

私はnode.jsを学んでおり、そのような例があります:

lesson6_module.js

var fs = require('fs');

module.exports = function (dir, regexFilter, callback) {
  fs.readdir(dir, function(err, files) {
    console.log('files.length ' + files.length);
    if (!err) {
      return callback(err, null);
    }
    var filteredFiles = [];
    files.forEach(function(file) {
      if (regexFilter.test(file)) {
        filteredFiles.push(file);
      }
    });
    console.log('filteredFiles.length ' + filteredFiles.length);
    callback(null, filteredFiles);
  });
};

lesson6.js

var lm6 = require('./lesson6_module.js');

var dir = process.argv[2];
var regex = new RegExp('\\.' + process.argv[3] + '$');
lm6(dir, regex, function(err, files) {
  files.forEach(function(file) {
    console.log(file);
  });
});

実行すると、次のようなエラーが表示されます。

D:\devhome\nodejs\learn>node lesson6.js testdir txt
files.length 2

D:\devhome\nodejs\learn\lesson6.js:6
  files.forEach(function(file) {
        ^
TypeError: Cannot call method 'forEach' of null
    at D:\devhome\nodejs\learn\lesson6.js:6:9
    at D:\devhome\nodejs\learn\lesson6_module.js:7:14
    at Object.oncomplete (fs.js:107:15)

なにが問題ですか?

4

1 に答える 1