使用了 process.stdin 的 nodejs 程序在不同系统上的兼容问题

2018-07-28sad creeper

最近用 nodejs 做了一个命令行程序,在 Windows 上运行没问题,放到 Mac 上就出错了,检查后发现是 process.stdin 这里出了问题

当输入一行字符串按下回车之后,process.stdin 会读到输入的字符串,包括末尾的回车

而换行符在不同的系统上是不一样的:

Unix系统里,每行结尾只有“<换行>”,即“\n”;

Windows系统里面,每行结尾是“<回车><换行>”,即“\r\n”;

Mac系统里,每行结尾是“<回车>”,即“\r”。

解决方案是使用 js 自带的字符串处理方法 trim() 处理取到的字符串

str = str.trim()

阅读 99 评论