【发布时间】:2015-07-24 11:30:27
【问题描述】:
菜鸟有一些问题,无法让脚本显示文件列表,我认为是关于 walk 是异步的,但我在错误中没有任何帮助。
问候, 马塞洛
// ---- listFiles.js -----------------------------------------------------------
exports.walk = function(currentDirPath, extension, callback) {
var fs = require('fs');
var regex = new RegExp( extension + '$', 'g' );
fs.readdir( currentDirPath, function (err, files) {
if (err) callback(err);
files.filter(function(fname){
if(fname.match(regex)) {
callback(null, fname);
}
})
});
console.log("Fired callback.");
}
// walk('.', 'js', function(err, file){ console.log(file); }); runs OK
// ---- listfilesTest.js --------------------------------------------------------
var http = require('http');
var content = require('./listFiles');
var args = process.argv.slice(2);
console.log(args); // command line arguments (dir & extension)
http.createServer(function (req, res) {
var files = [];
res.writeHead(200, {'Content-Type': 'text/plain'});
res.write('-- list of files --\n');
content.walk(args[0], args[1], function(err, data){
if(err) console.error(err);
//console.log(data);
res.write(data); // not printing the dir Listings
} );
res.end();
}).listen(9000);
// nodemon listFilesTest.js '.' 'js'
【问题讨论】:
-
试图将过滤器移动到回调没有成功
标签: javascript node.js http fs