我正在尝试与Mongo数据库建立连接,如果出现连接错误,我需要它来发送电子邮件通知我。它包含在email()
函数中。
这是我一直在尝试的代码:
const MongoClient = require('mongodb').MongoClient;
const url = "mongodb://server:port/";
MongoClient.connect(url, {useNewUrlParser: true}, async (err, db) => {
if (err) throw err;
var dbo = db.db("my_collection");
}, async function (err) {
console.log("No database connection");
email("Database is down")
});
这很简单,如果连接失败,我希望它向我发送电子邮件。但是,如果我在与数据库连接时运行此程序,它将运行(err)
函数并发送电子邮件,我只希望它在没有数据库连接时运行。
答案 0 :(得分:1)
您正在使用第二个回调,该回调在Mongo Node Native API中不存在,因此将不被使用。
相反,请使用第一个回调并检查您的err
参数是否不为空:
const MongoClient = require('mongodb').MongoClient;
const url = "mongodb://server:port/";
MongoClient.connect(url, {useNewUrlParser: true}, async (err, db) => {
if (err) {
console.log("No database connection");
email("Database is down")
return;
}
var dbo = db.db("my_collection");
});