Mongoose检测数据库未就绪

Cha*_*les 9 javascript mongoose mongodb node.js

是否有可能检测到数据库没有使用Mongoose运行?

tim*_*ley 20

你可以通过简单的检查判断是否已经连接了猫鼬

mongoose.connection.readyState
0 = no
1 = yes
Run Code Online (Sandbox Code Playgroud)

  • 实际上有4种不同的状态.除了上面提到的两个,还有2 ="连接"和3 ="断开连接".请参见http://mongoosejs.com/docs/api.html#connection_Connection-readyState (11认同)

Dan*_*Dan 18

我建议使用openerror事件来检查您是否可以连接到数据库.这是我所有项目中使用的一个简单示例,用于仔细检查我是否已连接.

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');
Run Code Online (Sandbox Code Playgroud)


Ami*_*noy 8

直截了当对我来说很好:

mongoose.Connection.STATES.connected === mongoose.connection.readyState