У меня есть приложение NodeJS, использующее пн goose. Evrything прекрасно работает, но когда я закрываю службу Mongod (на Windows), я получаю следующую ошибку, которая заставляет мое приложение создавать sh:
[DB HANDLER] Error...disconnected undefined
events.js:187
throw er; // Unhandled 'error' event
^
Error: read ECONNRESET
at TCP.onStreamRead (internal/stream_base_commons.js:201:27)
Emitted 'error' event on Connection instance at:
at Socket.<anonymous> (d:\Dev\LinxMainServer\node_modules\mongodb\lib\core\connection\connection.js:325:10)
at Object.onceWrapper (events.js:300:26)
at Socket.emit (events.js:210:5)
at emitErrorNT (internal/streams/destroy.js:92:8)
at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
at processTicksAndRejections (internal/process/task_queues.js:80:21) {
name: 'MongoNetworkError',
[Symbol(mongoErrorContextSymbol)]: {}
}
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! linxwebserver@0.0.1 compile: `tsc && node build/server.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the linxwebserver@0.0.1 compile script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
Что я не понимаю, так это Я обрабатываю события mon goose .connection, и я даже являюсь свидетелем прохождения кода "mon goose .connection.on ('error', ...)" в других случаях.
Ниже приводится фрагмент кода, который я использую в своем обработчике БД. js file:
mongoose.connection.on('error', function(err) {
console.log("[DB HANDLER] Error");
});
mongoose.connection.once('open', function() {
console.log("[DB HANDLER] Connected to MongoDB");
});
mongoose.connection.on('close', function () {
console.log('[DB HANDLER] Error...close');
});
mongoose.connection.on('disconnecting', function (err) {
console.log('[DB HANDLER] Error...disconnect', err);
});
mongoose.connection.on('disconnected', function (err) {
console.log('[DB HANDLER] Error...disconnected', err);
//connect(); // Creates a loop...
});
mongoose.connection.on('parseError', function (err) {
console.log('[DB HANDLER] Error...parse', err);
});
mongoose.connection.on('reconnected', function (err) {
console.log('[DB HANDLER] Reconnected event', err);
});
mongoose.connection.on('reconnectFailed', function (err) {
console.log('[DB HANDLER] reconnectFailed event', err);
});
mongoose.connection.on('connecting', function (err) {
console.log('[DB HANDLER] connecting event', err);
});
mongoose.connection.on('connected', function (err) {
console.log('[DB HANDLER] connected event', err);
});
mongoose.connection.on('timeout', function (err) {
console.log('[DB HANDLER] timeout event', err);
});
mongoose.connection.on('close', function (err) {
console.log('[DB HANDLER] close event', err);
});
const connect = async function() {
console.log('[DB HANDLER] Connect()');
console.log(`[DB HANDLER] Connecting to [${config_handler.config.test_name}] Database`);
/* Get DB URI */
var uri = (config_handler.config.db.instance.uri);
console.log('[DB HANDLER] DB uri: ', uri);
/* Get Mongoose options */
var mongooseOpts = (config_handler.config.db.mongoose_opts);
console.log('[DB HANDLER] mongooseOpts: ', mongooseOpts);
if(mongooseOpts == null || uri == null){
console.log('[DB HANDLER][ERROR] Couldnt get DB configuration from env_rec.json file');
}
/* Connect to DB */
try {
await mongoose.connect(uri, mongooseOpts);
} catch (error) {
console.log("[DB HANDLER][ERROR] Connection error: ", error.reason);
}
}
Спасибо