NodeJS - 使用 "Sequest" 检查 SFTP 远程文件是否存在

NodeJS - Check whether a SFTP remote file exists using "Sequest"

我是 NodeJS 的新手,我正在使用 "Sequest" 包来读取 SFTP 远程文件的内容。它很好用。但是,如果我尝试读取的文件不存在,则会抛出异常并且应用程序不会进一步响应。

所以我想在尝试读取文件之前检查文件是否存在。由于我使用的是库函数(sequest.get),我无法处理由于缺少指定文件而在库方法中发生的异常。

下面是我的代码:

var reader = sequest.get('xyz@abc', fileName, opts);
    reader.setEncoding('utf8');
    reader.on('data', function(chunk) {
                        return res.send(chunk);
    });

reader.on('end', function() {
    console.log('there will be no more data.');
});

参考:https://github.com/mikeal/sequest#gethost-path-opts

续集(https://github.com/mikeal/sequest) is a wrapper to SSH2 - (https://github.com/mscdex/ssh2)。

非常感谢任何帮助。谢谢。

你可以监听error事件来处理这种情况。

var reader = sequest.get('xyz@abc', fileName, opts);

reader.setEncoding('utf8');

reader.on('data', function(chunk) {
  return res.send(chunk);
});

reader.on('end', function() {
  console.log('there will be no more data.');
});

reader.on('error', function() {
  console.log('file not found or some other error');
});