2012-04-30 6 views
46

Node.js를 사용하여 로그 파일에 데이터를 추가하려고하는데 잘 작동하지만 다음 행으로 진행되지 않습니다. \ n 아래의 내 기능에서 작동하지 않는 것 같습니다. 어떤 제안? 감사합니다New Line in Node.js

function processInput (text) 
{  
    fs.open('H://log.txt', 'a', 666, function(e, id) { 
    fs.write(id, text + "\n", null, 'utf8', function(){ 
    fs.close(id, function(){ 
    console.log('file is updated'); 
    }); 
    }); 
    }); 
} 
+4

Windows 기반/Windows 기반 텍스트 편집기를 사용하여 파일을 볼 수 있으며 CRLF 쌍 '\ r \ n'이 필요합니까? – Phrogz

답변

83

Windows에서이 파일을 실행중인 것 같습니다 (H://log.txt 파일 경로가 있음).

\n 대신 \r\n을 사용해보십시오.

정직하게도 \n; 메모장이나 Windows가 아닌 개행 문자를 렌더링하지 않는 로그 파일을보고있을 것입니다. 다른 뷰어/편집기 (예 : 워드 패드)에서 열어보세요.

+1

은 메모장에서 보았습니다 :) – FacePalm

35

대신 os.EOL 상수를 사용하십시오.

var os = require("os"); 

function processInput (text) 
{  
    fs.open('H://log.txt', 'a', 666, function(e, id) { 
    fs.write(id, text + os.EOL, null, 'utf8', function(){ 
    fs.close(id, function(){ 
    console.log('file is updated'); 
    }); 
    }); 
    }); 
} 
+4

(1/2) node.js는 다양한 환경에서 실행될 수 있으므로 Windows 환경에서 Linux 환경으로 응용 프로그램을 이동할 수 있습니다. 즉, 응용 프로그램이'os.EOL'을 사용하여 로그를 추가하는 경우, 응용 프로그램이 윈도우에서 실행될 때부터'/ r/n'으로 끝나는 행을 가지게되고'/ n'으로 끝나는 행을 갖게됩니다. (애플 리케이션이 리눅스에서 실행될 때). 특히 로그 파일을 자동으로 구문 분석하면 문제가 발생할 가능성이 있습니다. 나는 단지'/ n'을 사용하기로 결정했습니다. – Sharky

+1

(2/2) 그럼에도 불구하고 우리가 완벽하게 규제 된 세계에 살면 나는 올바른 답처럼 답을 upvoted. – Sharky

+0

나는 리눅스를 사용한다.하지만이 접근 방식은 앞으로의 사용에서 이식성을 원하기 때문에 좋아한다. – sdkks