2016-08-12 53 views
2

我已經編寫了小代碼以獲取通過擴展名篩選的文件。我的觀點邏輯很好,但我無法指出爲什麼我沒有得到預期的產出。節點Js:無法找到以下文件篩選器代碼中的錯誤

請看看。

CODE

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 

輸出:

[email protected]:~/test/test1$ node ownModuleNode.js /home/linuxmen/test/test1/ js 
[email protected]:~/test/test1$ 

但是我有js擴展在該目錄中的文件太多了。

證明:

[email protected]:~/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 

輸出:

[email protected]:~/test/test1$ node ownModuleNode.js /home/linuxmen/test/test1/ js 
pathanme : /home/linuxmen/test/test1/ extname: .js 

謝謝。

+0

您是否檢查過路徑是否正確,是否需要避開斜槓? – Tushar

+0

你是否在某處調用過你的函數? – Maxx

+0

@Tushar感謝您關注此事,是的路徑正確無需逃跑。 –

回答

1

它看起來像你直接導出函數。當你需要()時,你只需要獲得該功能。你需要在你的應用程序中使用你的模塊。把這個 'app.js' 在同一目錄作爲ownModuleNode.js:

node app ~/Documents/dev/project .js 

輸出:

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

然後把它

app.js 
ownModuleNode.js 

注意,當你通過擴展名,你需要前面的點,因爲path.extname()返回點。

+0

我想我是這麼做的,' var mymodule = require('./ ownModuleNode') mymodule(process.argv [2],process.argv [3]) '但現在至少有一個好消息是我我可以通過上面的代碼訪問我的模塊。但我的模塊代碼似乎有問題。 @QoP感謝您的建議。 –

+0

你有沒有在我的主模塊發現任何錯誤,因爲我不能,但我沒有得到預期的行爲。 –

+0

你會得到什麼樣的行爲? – mcgraphix

相關問題