Node.JS không đổi cho dòng mới dành riêng cho nền tảng?


106

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?

Ví dụ:

  • Các cửa sổ: \r\n
  • * nix: \n

2
Tại sao không chỉ đơn giản là sử dụng \nmọi lúc?
ThiefMaster

7
@ThiefMaster, ... 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 đang sử dụng.
Brad

Câu trả lời:



9

Node.js 0.6.x trở về trước:

Rất tiếc là không có hằng số, nhưng bạn tự xác định nó bằng cách 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ơ)


Tôi đang làm điều đó bây giờ, nhưng hy vọng vào một cái gì đó được tích hợp sẵn. Ồ, cảm ơn vì bạn đã đóng góp ý kiến ​​cho Saul! +1
Brad

2
Chỉ cần tóm tắt với lợi ích của 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); như đối với giải pháp này: hoạt động ngay cả trên Windows 64-bit, vì cũng process.platform()trả về win32ở đó.
mklement0

Điều đó không hoạt động trên Mac, được sử dụng \rnhư một dấu phân cách.
yeputons

3
Mac đã ngừng sử dụng \rlàm dấu phân tách sau Mac OS 9 (xem en.wikipedia.org/wiki/Newline )
Saul

17
Không quá ngây thơ như bạn nghĩ, đây chính xác là những gì osmô-đun làm .
highes
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.