2016-07-05 4 views
-1

파일에서 데이터를 읽는 중입니다. json 객체를 만들고 싶습니다. nodejs fs 모듈을 사용하여 어떻게 만들 수 있습니까?Nodejs fs module : 읽는 법 json 객체를 작성하고 작성 하시겠습니까?

app.js

다음
var path = "./ditLogs/" + file; 
       fs.readFile(path, function(err, data) { 
        console.log('reading file data', data.toString()); 
       }); 

내가

file.txt를 위해 JSON을 만들 필요가 파일에 데이터가

{"event":"test data"} 
{"event":"test data"} 
{"event":"test data"} 
+1

'.split ("\ n")를지도 (구현 A => JSON.parse (A))'? – dandavis

답변

-1

간단히 라인별로 패키지를 사용하여 읽기, 덜 두통, 더 적은 코드로 읽기 프로세스 (더 이상 멈추지 않고, 읽기를 계속할 수 있고, 파일 디스크립터를 닫고, N 라인을 건너 뛸 수 있습니다.)

1) 설치합니다.

npm i --save line-by-line 
npm i --save lodash 

2)

var lineByLine = require('line-by-line'), 
    _ = require('lodash'), 
    path = require('path'); 


var lines = []; 
var filePath = path.join(__dirname, "ditLogs", file); 
var fileReader = new lineByLine(filePath); 

fileReader.on('line', function(line) { 
    line = JSON.parse(line); 
    if(_.isPlainObject(line) && !_.isEmpty(line)) { 
    lines.push(line); 
    } 

    // optional 
    doSomethingWithLine(line); 
}); 

function doSomethingWithLine(line) { 
    // for example You can save to db or send to somewhere using request libary or just show in console 
} 

fileReader.on('error', function(error) { 
    console.error(error); 
    process.exit(-1); 
}); 

fileReader.on('end', function() { 
    doSomethingAfterParsingAllLines(lines); 
}); 

function doSomethingAfterParsingAllLines(records) { 
    // do something with data 
} 
+0

현명한 사람은 이유를 말하지 않고 내 대답을 downvoted. 공정하지 않아! (: – num8er

관련 문제