针对平台特定新线的Node.JS常量?

Bra*_*rad 89 node.js

Node.JS中是否有一个常量可用于特定于运行应用程序的平台的换行符?

例如:

  • 视窗: \r\n
  • *nix中: \n

Wil*_*unn 205

不确定这是0.8.x中的新功能,但现在有一个常量http://nodejs.org/api/os.html#os_os_eol

var endOfLine = require('os').EOL;
Run Code Online (Sandbox Code Playgroud)

  • 或 `const { EOL } = require('os');` (13认同)
  • 如今,您甚至可以使用“import { EOL } from 'os'”,但我也认识到答案是在 2012 年写的,评论/编辑将持续到 2019 年 (4认同)

Sau*_*aul 9

不幸的是,没有常数,但你自己决定使用:

var nl = (process.platform === 'win32' ? '\r\n' : '\n')
Run Code Online (Sandbox Code Playgroud)

(注意这是一个非常天真的解决方案)

  • 不像你想的那样天真*,[这正是`os`模块所做的](https://github.com/joyent/node/blob/master/lib/os.js). (13认同)
  • 在Mac OS 9之后,Mac停止使用`\ r`作为其分隔符(请参阅https://en.wikipedia.org/wiki/Newline) (3认同)
  • 只是为了总结后见之明的好处:从v0.8开始,你可以使用`require('os').EOL`(见接受的答案); 至于这个解决方案:甚至可以在64位Windows上运行,因为`process.platform()`也会返回`win32`. (2认同)