当mongo服务器未运行时,mongoose连接会同时打印出两个console.log

时间:2018-08-05 14:55:40

标签: node.js mongodb express mongoose

我与mongodb服务器建立了猫鼬连接。当服务器正在运行并尝试连接时,它可以正常工作,并且仅将单个语句输出到控制台。但是当我还没有打开mongo服务器时,它会按照它们在代码中的顺序打印两个语句。我知道这不是一个很大的错误,但是希望在服务器实际关闭时不会将运行状况检查显示为“启动”。

猫鼬连接代码:

mongoose.connect(config.db, {autoReconnect: true}, () => console.log('MongoDB has connected successfully.'));
mongoose.connection.on('error', function() {
  console.error('MongoDB Connection Error. Make sure MongoDB is running.');
});

1 个答案:

答案 0 :(得分:1)

connect回调收到一个error参数,您可以检查该参数:

mongoose.connect(config.db, {autoReconnect: true}, (err) => {
    if (!err) console.log('MongoDB has connected successfully.');
});

您还可以按照处理“错误”事件的相同方式分别处理“连接”事件:

mongoose.connection.on('connect', function() {
  console.error('MongoDB has connected successfully');
});