节点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()返回点。