2012-04-30 29 views
46

Tôi đang cố gắng Nối dữ liệu vào tệp nhật ký bằng cách sử dụng Node.js và hoạt động tốt nhưng không chuyển sang dòng tiếp theo. \ n dường như không hoạt động trong chức năng của tôi bên dưới. Bất kỳ đề xuất? Cảm ơnDòng mới trong 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

Bạn đang sử dụng Windows/sử dụng trình soạn thảo văn bản dựa trên Windows để xem tệp của mình và do đó cần cặp CRLF, '\ r \ n'? – Phrogz

Trả lời

83

Có vẻ như bạn đang chạy ứng dụng này trên Windows (theo đường dẫn tệp H://log.txt).

Hãy thử sử dụng \r\n thay vì chỉ \n.

Thành thật mà nói, \n là tốt; có thể bạn đang xem tệp nhật ký trong notepad hoặc cái gì đó khác không hiển thị dòng mới không phải của Windows. Thử mở nó trong trình xem/trình chỉnh sửa khác (ví dụ: Wordpad).

+1

đang xem trong notepad :) – FacePalm

35

Sử dụng hằng số os.EOL thay thế.

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) Xin lưu ý rằng vì node.js có thể chạy trên nhiều môi trường khác nhau, nên có thể di chuyển ứng dụng của bạn từ cho phép nói môi trường cửa sổ với một môi trường linux. điều đó có nghĩa là nếu ứng dụng của bạn đang thêm nhật ký bằng cách sử dụng 'os.EOL', bạn sẽ có một số dòng kết thúc bằng'/r/n' (từ ứng dụng thời gian đang chạy trên các cửa sổ) và sau đó bạn sẽ có hàng kết thúc bằng '/ n' (khi ứng dụng chạy trên Linux). Điều này có khả năng gây ra một số rắc rối đặc biệt là nếu bất kỳ phân tích tự động các tệp nhật ký nào được đặt ra. Tôi quyết định chỉ sử dụng '/ n'. – Sharky

+1

(2/2) Tuy nhiên tôi đã bình chọn câu trả lời của bạn vì nó sẽ là câu trả lời đúng, nếu chúng ta sống trong một thế giới hoàn hảo được quy định. – Sharky

+0

Tôi sử dụng linux nhưng thích phương pháp này vì tôi có thể muốn tính di động trong tương lai sử dụng. – sdkks