如果mongoose无法连接或找到mongoDB,我会尝试抛出自己的错误。
最近我尝试的是:
mongoose.connect('mongodb://localhost/numaria');
db = mongoose.connection;
db.on('error', console.error.bind(console, 'THIS ERROR WONT SHOW'));
db.once('open', function(){
console.log(clc.blackBright(new Date()) + ': ' + clc.cyan('Connected') + ' to ' + clc.yellow('MongoDB'));
});
我的期望:THIS ERROR WONT SHOW
我得到了什么:
throw er; // Unhandled 'error' event
Error: failed to connect to [localhost:27017]
引用了一个mongoose模块文件
<小时/> 我一直都是这样,我已经尝试了所有这些,但无济于事:
这是猫鼬入口:
我还试过围绕try{}catch(err){})
最后,如果我启动数据库,一切正常。
<小时/> 的修改
@glortho解释&#34;如果MongoDB根本没有运行,那么你甚至无法进入连接错误层,因为你已经绑定了它。&#34;
有没有办法在没有找到MongoDB的情况下更好地抛出错误?
答案 0 :(得分:0)
您先连接。试试这个:
db = mongoose.connection;
db.on('error', console.error.bind(console, 'THIS ERROR WONT SHOW'));
db.once('open', function(){
console.log(clc.blackBright(new Date()) + ': ' + clc.cyan('Connected') + ' to ' + clc.yellow('MongoDB'));
});
try {
mongoose.connect('mongodb://localhost/numaria');
} catch(err) {
console.error(err);
}