是否有可能檢測到數據庫沒有運行Mongoose?貓鼬檢測數據庫沒有準備好
回答
我會建議使用open
和error
事件,以檢查是否可以連接到數據庫。這是一個簡單的例子,用於我的所有項目中,以檢查我是否已連接。
var mongoose = require('mongoose');
mongoose.connection.on('open', function (ref) {
console.log('Connected to mongo server.');
});
mongoose.connection.on('error', function (err) {
console.log('Could not connect to mongo server!');
console.log(err);
});
mongoose.connect('mongodb://localhost/mongodb');
顯然貓鼬它自己不會拋出任何例外。
所以,你可以使用蒙戈DB本地的NodeJS司機:
因此,這裏是你可以做什麼:
var mongoose = require('mongoose');
var Db = require('mongodb').Db,
Server = require('mongodb').Server;
console.log(">> Connecting to mongodb on 127.0.0.1:27017");
var db = new Db('test', new Server("127.0.0.1", 27017, {}));
db.open(function(err, db) {
console.log(">> Opening collection test");
try {
db.collection('test', function(err, collection) {
console.log("dropped: ");
console.dir(collection);
});
}
catch (err) {
if (!db) {
throw('MongoDB server connection error!');
}
else {
throw err;
}
}
});
process.on('uncaughtException', function(err) {
console.log(err);
});
感謝您的回答:) – Charles 2012-07-18 21:05:37
如果你可以告訴貓鼬是通過簡單地檢查
mongoose.connection.readyState
0 = no
1 = yes
實際上有4種不同的狀態。除了上面提到的兩個,還有2 =「連接」和3 =「斷開連接」。看到這裏http://mongoosejs.com/docs/api.html#connection_Connection-readyState – Risadinha 2012-09-25 14:23:01
的直截了當工作正常,我已經連接與否:
mongoose.Connection.STATES.connected === mongoose.connection.readyState
謝謝!我一直在尋找常數。這比使用== 1更清潔 – koga73 2017-05-04 19:02:34
- 1. 用貓鼬檢索數據
- 2. 貓鼬數據庫建模
- 3. 貓鼬recusce從數據庫
- 4. 貓鼬連接現有的數據庫
- 5. 貓鼬 - 數據沒有保存到db
- 6. 貓鼬 - 檢測重複場
- 7. SocketChannel還沒有準備好
- 8. 數據庫準備好國家列表?
- 9. Go語言 - 插入數據到Mysql數據庫沒有準備好的語句
- 10. 當Applet準備好使用時檢測
- 11. 爲異常檢測準備數據
- 12. 跟蹤和「設備沒有準備好」
- 13. Youtube API有時還沒有準備好
- 14. 只有一個數據插入貓鼬MLAB數據庫
- 15. 沒有模式的貓鼬
- 16. MongoLab和Heroku沒有貓鼬
- 17. 貓鼬$中沒有的NodeJS
- 18. 貓鼬ODM:NumberInt沒有定義
- 19. ReferenceError:沒有定義貓鼬
- 20. 導出貓鼬數據庫模塊
- 21. 與貓鼬交換數據庫
- 22. 貓鼬不更新數據庫條目
- 23. 「數據還沒有準備好」的消息在ArangoDB Web Interface
- 24. 有沒有準備好使用Android繪圖庫?
- 25. 貓鼬回調函數沒有觸發
- 26. 貓鼬沒有正確排序數
- 27. 蒸氣與Postgres - 表沒有準備好
- 28. QML的WebView組件沒有準備好
- 29. Soundpool示例沒有準備好
- 30. avfoundation:appendPixelBuffer withPresentationTime,適配器沒有準備好
是的,這更好。只記得使用分號「;」 :) – 2012-07-18 17:03:18
謝謝你的回答,這是我需要:) – Charles 2012-07-18 21:05:13