我使用mongoose
连接mongodb
中的nodejs
const mongoose = require("mongoose");
mongoose.connect("mongodb://127.0.0.1:27017/testdb", {useNewUrlParser: true});
let db = mongoose.connection;
db.on("error", function (error) {
console.log("fail--->" + error);
});
db.on("open", function () {
console.log("connected");
});
这很好用,我找到了另一种方法,将上面的代码更改为
const mongoose = require("mongoose");
let db = mongoose.connect("mongodb://127.0.0.1:27017/testdb", { useNewUrlParser: true });
db.connection.on("error", function (error) {
console.log("fail--->" + error);
});
db.connection.on("open", function () {
console.log("connected");
});
但这会引发错误
db.connection.on("error", function (error) {
^
TypeError: Cannot read property 'on' of undefined
有人可以为我解释吗?上面的两个代码有什么不同,非常感谢。
答案 0 :(得分:1)
mongoose.connect()
仅建立与数据库的连接并返回承诺。当您调用mongoose.connect()
时,Mongoose将创建默认的数据库连接,您可以使用mongoose.connection
访问此默认连接。现在,您可以使用错误/打开等事件来检查此连接的状态。
您的第二段代码不起作用,因为mongoose.connect()
返回的不是数据库连接对象的Promise。您正在尝试访问不存在的 connection 属性,因此会引发错误未定义的属性错误。
db.connection.on("error", function (error) {
^
TypeError: Cannot read property 'on' of undefined
希望这会对您有所帮助:)
。