Nodejs ssh将输出字节流转换为可切片字符串

时间:2014-12-30 08:17:03

标签: node.js ssh npm

我正在使用npm ssh2模块在远程机器上执行'ls -l'&阅读数据...... 在我的connection.exec回调中(当命令运行并将数据发回时调用),我得到的数据输出看起来像一个字节数组。在换行的地方,我得到10作为字节值..

o / p stream看起来像,

Object[97, 10, 98, 10, 99, 10]

是ascii的形式 一个 b ç

现在,混淆是如何将它们转换为字符串&用换行符字符对它们进行切片

我做了什么::::

var fsArr = JSON.stringify(data).slice(String.fromCharCode(10))
fsArr.forEach(......)

这失败了,错误,

Object[97, 10, 98, 10, 99, 10] has no method 'forEach'

为什么JSON.stringify不将数据字节流转换为有效字符串? &安培;如果slice方法没有返回数组,还能返回什么呢?

1 个答案:

答案 0 :(得分:0)

您收到了Buffer个对象,并且想要String。这通常就足够了:

var s = String(data)
var fsArr = JSON.stringify(s).slice(String.fromCharCode(10))
fsArr.forEach(......)

编辑: 有人指出,'切片'也不是你想要的。您可能希望使用s.split('\n')或类似表达式将字符串拆分为换行符。

在任何情况下,要将Buffer数据转换为String,您只需要在其上调用String()