ssh2-sftp-client获取请求node.js

我正在尝试使用ssh2-sftp-client从FTP服务器下载文件。

我可以看到下面的代码中显示的文件列表,我的问题是当涉及到下载文件。

正如你从我的代码下面可以看到,我正在尝试使用sftp.get来获取文件和节点文件系统的内容来创build一个文件。

当文件保存时不保存文件在服务器上的内容只保存[object Object]

var Client = require('../../node_modules/ssh2-sftp-client'); var sftp = new Client(); var root = '/files'; var fs = require('fs'); sftp.connect({ host: '192.168.0.1', port: '22', username: 'user', password: 'password' }).then(() => { return sftp.list(root); }).then((data) => { for( var i = 0, len = data.length; i < len; i++) { console.log(data[i].name); var name = data[i].name; sftp.get(root+'/'+name).then((file) => { console.log(file); fs.writeFile('downloads/'+name, file, function(err) { if(err) { return console.log(err); } console.log("The file was saved!"); }); }) } }).catch((err) => { console.log(err, 'catch error'); }); 

我怎样才能保存文件的内容?

任何帮助或推动正确的方向将非常感激。

我通过将sftp.get更改为以下来解决了我的问题:

 sftp.get(root+"/"+name).then((stream) => { stream.pipe(fs.createWriteStream(local+name)); }); 

我希望这可以帮助任何可能有这个问题的人。