我正在编写一个应该根据文件类型从命令行过滤和打印给定目录文件的程序。
mymodule.js:
var fs = require('fs');
var result=[];
exports.name = function() {
fs.readdir(process.argv[2], function (err, list) {
for(var file in list){
if(list[file].indexOf('.'+process.argv[3]) !== -1){
result.push(list[file]);
}
}
});
};
在我的实际文件中 index.js:
var mymodule = require('./mymodule')
console.log(mymodule.name());
运行命令时
> node index.js SmashingNodeJS js //In SmashingNodeJS folder print all the .js files
console.log打印未定义,请告诉我这里的错误以及如何将内容返回/绑定到导出。
答案 0 :(得分:2)
我按照上面的Bergi评论修正了它。
mymodule.js:
var fs = require('fs');
exports.name = function(print) { // Added print callback here as param
var result = [];
fs.readdir(process.argv[2], function (err, list) {
for (var file=0; file<list.length; file++) {
if (list[file].indexOf('.'+process.argv[3]) !== -1) {
result.push(list[file]);
}
}
print(result); // Calling back instead of return
});
};
在index.js文件中:
var mymodule = require('./mymodule')
mymodule.name(console.log); // pass the console.log function as callback