Ich versuche, eine Funktion zu schreiben, die den Inhalt eines Verzeichnisses durchläuft und alle xml-Dateien innerhalb des Verzeichnisses zurückgibt. Bisher bin ich in der Lage, alle Dateien im Verzeichnis zurückzukehren (console.log(files)
druckt einen Array von Strings mit den Dateinamen, aber wenn ich versuche, mit der path.extname
Funktion zum Filtern Ich erhalte:Unbehandelte Ablehnung TypeError: path.extname ist keine Funktion
usr/local/Cellar/node/6.8.0/bin/node /Users/shooshte/Sportradar/notThatKindOfPeon/bluebird.js Unhandled rejection TypeError: path.extname is not a function at /Users/shooshte/Sportradar/notThatKindOfPeon/bluebird.js:23:31 at Array.filter (native) at /Users/shooshte/Sportradar/notThatKindOfPeon/bluebird.js:22:30 at tryCatcher (/Users/shooshte/Sportradar/notThatKindOfPeon/node_modules/bluebird/js/release/util.js:16:23) at Promise._settlePromiseFromHandler (/Users/shooshte/Sportradar/notThatKindOfPeon/node_modules/bluebird/js/release/promise.js:510:31) at Promise._settlePromise (/Users/shooshte/Sportradar/notThatKindOfPeon/node_modules/bluebird/js/release/promise.js:567:18) at Promise._settlePromise0 (/Users/shooshte/Sportradar/notThatKindOfPeon/node_modules/bluebird/js/release/promise.js:612:10) at Promise._settlePromises (/Users/shooshte/Sportradar/notThatKindOfPeon/node_modules/bluebird/js/release/promise.js:691:18) at Promise._fulfill (/Users/shooshte/Sportradar/notThatKindOfPeon/node_modules/bluebird/js/release/promise.js:636:18) at /Users/shooshte/Sportradar/notThatKindOfPeon/node_modules/bluebird/js/release/nodeback.js:42:21 at FSReqWrap.oncomplete (fs.js:123:15)
Dies ist meine Code:.
const Promise = require('bluebird');
const fs = Promise.promisifyAll(require('fs'));
const path = require('path');
function getFileNames(path) {
// Read content of path
return fs.readdirAsync(path)
// For every file in path
.then(function(content) {
// Filter out the directories
return content.filter(function(file) {
return fs.statSync(path + '/' + file).isDirectory();
});
})
// For every directory
.then(function(directories) {
directories.map(function(directory) {
// Read file in the directory
fs.readdirAsync(path + '/' + directory + '/')
.then(function(files) {
// Filter out the XMLS
return files.filter(function(file) {
return path.extname(file) == '.XML';
});
console.log(files);
});
});
});
}
getFileNames('./XML');