2015-07-13 39 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