2012-06-02 24 views
74

Có một hằng số có sẵn trong Node.JS cho một ký tự dòng mới dành riêng cho nền tảng mà ứng dụng đang chạy không?Node.JS không đổi cho dòng mới dành riêng cho nền tảng?

Ví dụ:

  • Windows: \r\n
  • * nix: \n
+1

Tại sao không chỉ cần sử dụng '\ n' tất cả các thời gian? – ThiefMaster

+5

@ThiefMaster, ... bởi vì tôi muốn các tệp được viết để phù hợp với các tiêu chuẩn cho nền tảng được sử dụng. – Brad

Trả lời

146

Không chắc nếu điều này là mới trong 0.8.x nhưng hiện nay là một hằng số http://nodejs.org/api/os.html#os_os_eol

var endOfLine = require('os').EOL; 
+0

Tuyệt vời! Vui mừng khi thấy họ đã thêm nó. Cảm ơn bạn đã đào bới điều này. – Brad

+0

mới trong: v0.7.8, sử dụng cẩn thận –

+0

@CyprienAutexier Đã hơn 5 năm trước ... – Brad

8

Đáng tiếc là không có một hằng số, nhưng bạn quyết định tự mình sử dụng:

var nl = (process.platform === 'win32' ? '\r\n' : '\n') 

(lưu ý đây là một giải pháp khá ngây thơ)

+0

Tôi đang làm điều đó ngay bây giờ, nhưng đã hy vọng cho một cái gì đó được xây dựng trong. Oh well, cảm ơn cho đầu vào của bạn Saul! +1 – Brad

+1

Chỉ cần tóm tắt với lợi ích của việc nhận thức muộn: từ v0.8 trở đi, bạn có thể sử dụng 'require ('os'). EOL' (xem câu trả lời được chấp nhận); đối với giải pháp này: hoạt động ngay cả trên Windows 64 bit, vì 'process.platform()' trả về 'win32' ở đó, quá. – mklement0

+0

Điều đó không hoạt động trên Mac, sử dụng '\ r' làm dấu phân tách. – yeputons

Các vấn đề liên quan