如果貓鼬不能連接到我的數據庫,我該如何設置錯誤處理的回調?是否有貓鼬連接錯誤回撥
我知道的
connection.on('open', function() { ... });
,但有什麼樣
connection.on('error', function (err) { ... });
?
如果貓鼬不能連接到我的數據庫,我該如何設置錯誤處理的回調?是否有貓鼬連接錯誤回撥
我知道的
connection.on('open', function() { ... });
,但有什麼樣
connection.on('error', function (err) { ... });
?
當你連接,你可以在回調拿起錯誤:
mongoose.connect('mongodb://localhost/dbname', function(err) {
if (err) throw err;
});
如果我希望我的服務器即使出現錯誤也能繼續運行,該怎麼辦?我迄今爲止試過的所有東西都會拋出錯誤,然後終止程序。 –
如果您在這裏遇到錯誤,您可能要麼是配置錯誤,要麼是數據庫服務器關閉......在這種情況下,您最有可能無法繼續應用程序。但是,當出現意外錯誤時重啓應用也是最好的 - 否則它處於未知狀態。 – evilcelery
@evilcelery在貓鼬中的所有查詢都被緩衝,所以只要你重新連接到數據庫,它們都應該被執行,這很好,並且不應該是未知狀態的原因。 – Andy
如果有人碰巧在此,貓鼬的版本,我跑(3.4)的作品在這個問題說明。所以下面的代碼可以返回一個錯誤。
connection.on('error', function (err) { ... });
晚的答案,但如果你想保持服務器運行,您可以使用此:
mongoose.connect('mongodb://localhost/dbname',function(err) {
if (err)
return console.error(err);
});
有很多貓鼬回調可以使用,
// CONNECTION EVENTS
// When successfully connected
mongoose.connection.on('connected', function() {
console.log('Mongoose default connection open to ' + dbURI);
});
// If the connection throws an error
mongoose.connection.on('error',function (err) {
console.log('Mongoose default connection error: ' + err);
});
// When the connection is disconnected
mongoose.connection.on('disconnected', function() {
console.log('Mongoose default connection disconnected');
});
// If the Node process ends, close the Mongoose connection
process.on('SIGINT', function() {
mongoose.connection.close(function() {
console.log('Mongoose default connection disconnected through app termination');
process.exit(0);
});
});
更多關於:http://theholmesoffice.com/mongoose-connection-best-practice/
對於任何人在這個問題上磕磕絆絆,connection.on('error',function(err){...});'現在在3.X中實現。 – Nepoxx