2015-10-20 3 views
1

Я новичок в NodeJS, и я использую пакет «Sequest» для чтения содержимого удаленного файла SFTP. Он отлично работает. Однако, если файл, который я пытаюсь прочитать, не существует, он генерирует исключение, и приложение не отвечает дальше.NodeJS - Проверьте, существует ли удаленный файл SFTP с использованием «Sequest»

Так что я хочу проверить, существует ли файл, прежде чем пытаться его прочитать. Поскольку я использую библиотечную функцию (sequest.get), я не могу обработать исключение, которое происходит в библиотечном методе из-за отсутствия указанного файла.

Ниже мой код:

var reader = sequest.get('xyz[email protected]', 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.'); 
}); 

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

Sequest (https://github.com/mikeal/sequest) является оболочкой для SSH2 - (https://github.com/mscdex/ssh2).

Любая помощь очень ценится. Спасибо.

ответ

1

Вы можете прослушать error событие для обработки таких случаев.

var reader = sequest.get('[email protected]', 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'); 
}); 
+0

Большое вам спасибо. Это определило проблему. Я думаю, мне нужно больше узнать о потоках ввода-вывода и их событиях. –

Смежные вопросы