API의 데이터를 일부 파일에 쓰는 스크립트가 있습니다. 나는 객체 (가) 각 파일에 대한 파일 설명이 포함되어 있습니다 fs.readFileSync는 항상 빈 문자열을 반환합니다.
var csvFds = {
'file1' : null,
'file2' : null,
'file3' : null,
'file4' : null
};
for (var file in csvFds) {
var dirPath = __dirname + '/files/' + file;
try {
fs.statSync(dirPath);
}
catch (e) {
mkdirp.sync(dirPath, {mode: 0755});
}
csvFds[file] = fs.openSync(dirPath + '/' + moment().format("YYYY-MM-DDTHH:mm:ss[Z]") + '.csv', 'a+');
}
는 그럼 난 일괄 파일에 CSV의 라인을 작성하는 fs.write를 사용하는 몇 가지 코드가 있습니다. 이 부분은 잘 작동합니다. 나는 CSV 파일을 잘 형성했다. 이제 전체 파일의 내용을 문자열로 읽어야합니다. 이것이 내가하는 방법입니다 :
fs.readFileSync(csvFds['file1']).toString();
하지만 저는 항상 빈 문자열을 얻고 있습니다. fs.readFileSync가 실제로 console.log를 사용하고 toString() 메소드를 삭제하여 Buffer를 반환하고 있음을 확인했습니다.
정말 도움이되므로 크게 도움이 될 것입니다. 미리 감사드립니다. 이 readFileSync(csvFds['file1'], 'utf-8')
같은 readFileSync
를 호출하는
$ node -v
v6.2.3-pre
$ uname -a
Darwin i-2.local 14.5.0 Darwin Kernel Version 14.5.0: Thu Jun 16 19:58:21 PDT 2016; root:xnu-2782.50.4~1/RELEASE_X86_64 x86_64
'readFileSync' 메소드에 인코딩을 제공하면'Buffer' 대신에 문자열을 얻을 것입니다 – mic4ael