我正在使用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方法没有返回数组,还能返回什么呢?
答案 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()
。