mongoose 连接到MongoDb数据库时出错

rdlzhqv9  于 2023-10-19  发布在  Go
关注(0)|答案(1)|浏览(162)

当我尝试以这种方式连接数据库时,它会给出此错误,而我之前已经成功地连接了数据库。

const mongoose = require('mongoose');
require('dotenv').config();

exports.dbConnect = () => {
    mongoose.connect("mongodb://localhost:27017/cloudinaryEntry", {
        useNewUrlParser : true,
        useUnifiedTopology : true,
    })
    .then( () => console.log("Database connected successfully"))
    .catch( (error) => console.log("Error in connected database", error));
}

Here is the code and error
但当我添加另一个属性“家庭:4“,然后成功连接。”有人能告诉我为什么会这样吗?***

const mongoose = require('mongoose');
require('dotenv').config();
exports.dbConnect = () => {
    mongoose.connect("mongodb://localhost:27017/cloudinaryEntry", {
        useNewUrlParser : true,
        useUnifiedTopology : true,
        family : 4
    })
    .then( () => console.log("Database connected successfully"))
    .catch( (error) => console.log("Error in connected database", error));
}

**Here is the Code

az31mfrm

az31mfrm1#

关于Mongoose faq
发生此错误的原因是Node.js 18及以上默认情况下更喜欢IPv6地址而不是IPv4。而且,大多数Linux和OSX机器默认情况下在/etc/hosts中有一个::1 localhost条目。这意味着Node.js 18将假设localhost表示IPv6::1地址。MongoDB默认不接受IPv6连接。
最简单的解决方案是在连接中使用127.0.0.1而不是localhost
您提供的{ family: 4 }选项被传递给Node dns.lookup()函数,以便使用IPv4。这就是为什么它允许你连接。

相关问题