Ad
Catch Uncaught Exception Error In Node-ftp Module
I'm using the npm ftp library: https://www.npmjs.com/package/ftp I want to upload a file on a ftp server and I want to catch errors during the connection, e.g. a wrong login.
My function:
const upload = () => {
try {
const ftpClient = new ftp();
fs.readFile(filePathToUpload, 'utf8', (err, data) => {
const fileValue = data.concat(' Timestamp: ', new Date());
ftpClient.on('ready', () => {
ftpClient.put(fileValue, FILENAME_REMOTE, (err) => {
console.log('PUT FTP');
if (err) {
console.log(err);
}
ftpClient.end();
});
});
try {
console.log('connect upload');
ftpClient.connect(ftpConfig);
} catch (connectionError) {
console.log('Connection Error: ', connectionError);
}
});
} catch (err) {
console.log('ERROR-FTP-Upload: ', err);
}
};
But I always get 'ERROR Uncaught Exception' even if I use
process.on('uncaughtException', err => console.log(err));
Full Stack Trace:
{"errorType":"Error","errorMessage":"Login incorrect.","code":530,"stack":["Error: Login incorrect."," at makeError (/var/task/node_modules/ftp/lib/connection.js:1067:13)"," at Parser.<anonymous> (/var/task/node_modules/ftp/lib/connection.js:113:25)"," at Parser.emit (events.js:189:13)"," at Parser.EventEmitter.emit (domain.js:441:20)"," at Parser._write (/var/task/node_modules/ftp/lib/parser.js:59:10)"," at doWrite (_stream_writable.js:410:12)"," at writeOrBuffer (_stream_writable.js:394:5)"," at Parser.Writable.write (_stream_writable.js:294:11)"," at Socket.ondata (/var/task/node_modules/ftp/lib/connection.js:273:20)"," at Socket.emit (events.js:189:13)"]}
How can I handle the error?
Ad
Answer
const ftpClient = new ftp();
ftpClient.on('error',console.dir);//add error listener.
// rest code...
Ad
source: stackoverflow.com
Related Questions
- → How to update data attribute on Ajax complete
- → October CMS - Radio Button Ajax Click Twice in a Row Causes Content to disappear
- → Octobercms Component Unique id (Twig & Javascript)
- → Passing a JS var from AJAX response to Twig
- → Laravel {!! Form::open() !!} doesn't work within AngularJS
- → DropzoneJS & Laravel - Output form validation errors
- → Import statement and Babel
- → Uncaught TypeError: Cannot read property '__SECRET_DOM_DO_NOT_USE_OR_YOU_WILL_BE_FIRED' of undefined
- → React-router: Passing props to children
- → ListView.DataSource looping data for React Native
- → Can't test submit handler in React component
- → React + Flux - How to avoid global variable
- → Webpack, React & Babel, not rendering DOM
Ad