2015-07-13 22 views
0

我使用以下代碼從我的節點應用程序文件夾中讀取json文件。 我使用JSON文件的文件夾已經和我想讀下面的代碼 內容,該凸出建立像從文件1以下在節點中讀取文件不起作用

myproj 
    folder1 
    file1 
    jsonFiles 
    json1.json 

現在我想json1,我嘗試與不工作如下。 。任何想法?

glob("jsonFiles/*.json", function(err, files) { 

      files.forEach(function(file) { 
       fs.readFile(file, 'utf8', function (err, data) { 
       console.log("im here") 

我無法在控制檯中找到「im here」,它可能是什麼? 當我把斷點調試我能看到得到fs.readFile但在接下來的行它不停止,我沒有得到任何錯誤... UPD

我看到文件fs.readFile(file, 'utf8'中,以下路徑:jsonFiles/json1.json

+0

首先,'files.forEach'是同步的,你打電話裏面異步方法。它不會像你期望的那樣工作。第二:你的代碼中是'consloe.log',或者它只是代碼片斷中的一個錯字? –

+0

你也應該記錄'err'來看看發生了什麼。 –

+0

@RodrigoMedeiros - 謝謝這是錯字:)但我應該怎麼做才能使它工作?我把如果(錯誤),而不是錯誤,但我沒有得到任何錯誤,因爲它不跳到下一行(在調試模式下) –

回答

1

它工作得很好:

$ touch 1 2 3 

$ cat > app.js 
var fs = require('fs'); 
var files = ['1', '2', '3']; 
files.forEach(function(file) { 
    fs.readFile(file, 'utf8', function (err, data) { 
    console.log("im here"); 
    }); 
}); 
^D 

$ nodejs app.js 
im here 
im here 
im here 
+0

謝謝,但這並沒有幫助,因爲我嘗試在我的項目中的文件... –

+0

在調試我在文件中看到fs.readFile(文件,'utf8',以下路徑:jsonFiles/json1.json –

+1

您可以'mkdir jsonFiles','觸摸jsonFiles/json {1,2,3} .json'並用'['jsonFiles/json1.json'...'替換* .js文件中的'files'數組,它仍然可以工作。那個glob不會用你想要的'files'回調,記錄下你在調用forEach之前看到的是什麼'files' – PSkocik