节点Js:无法find以下文件筛选器代码中的错误

我已经写了小代码来获取扩展名过滤的文件。 而我的观点逻辑是好的,但我无法指出为什么我没有得到预期的产出。

请看一看。

var fs = require('fs') var path = require('path') path_name = process.argv[2] ext_name = "."+process.argv[3] var filter_function = function ( path_name,exthide_name,callback) { fs.readdir(dirpath,function(err,list) { if(err) return console.error(err) for ( var i in list) { if(path.extname(list[i]) == ext_name) console.log(list[i]) } }) } module.exports=filter_function 

输出:

 linuxmen@linuxmen-fresh:~/test/test1$ node ownModuleNode.js /home/linuxmen/test/test1/ js linuxmen@linuxmen-fresh:~/test/test1$ 

但是我在这个目录里有很多js扩展名的文件。

certificate:

 linuxmen@linuxmen-fresh:~/test/test1$ ls *js check_mod1.js ex1.js ex2.js ex3.js ex4.js ex5.js ex6.js ex7.js ex8.js filter.js filter_use.js modse.js ownModuleNode.js se.js use_mod1.js using_module.js 

可以请帮助,我失踪了。

更新-1:我使用上面的代码模块文件,并在这里调用它。

使用上面的代码文件

 var mymodule = require('./ownModuleNode') mymodule.filter_function(process.argv[2],process.argv[3]) 

更新2:

 var fs = require('fs') var path = require('path') path_name = process.argv[2] ext_name = "."+process.argv[3] console.log("path_name :",path_name,"extname:",ext_name) var filter_function = function ( path_name,ext_name,callback) { fs.readdir(path_name,function(err,list) { if (err) console.error(err) console.log(list) for ( var i in list) { if(path.extname(list[i]) == ext_name) console.log(list[i]) } }) } module.exports=filter_function 

输出:

 linuxmen@linuxmen-fresh:~/test/test1$ node ownModuleNode.js /home/linuxmen/test/test1/ js pathanme : /home/linuxmen/test/test1/ extname: .js 

谢谢。

看起来你是直接导出函数。 当你需要()时,你只需要获得这个函数。 您需要在应用程序中使用您的模块。 把它放在'app.js'和ownModuleNode.js相同的目录下:

 var filterFunction = require('./ownModuleNode'); filterFunction(process.argv[2], process.argv[3]); 

然后用以下方式调用它

 node app ~/Documents/dev/project .js 

输出:

 app.js ownModuleNode.js 

请注意,当您传递扩展名时,您需要前面的点,因为path.extname()返回点。