Mongoose NodeJS macOS Big Sur MongooseServerSelectionError:连接 ECONNREFUSED ::1:27017

Eth*_*vis 3 mongoose mongodb node.js macos-big-sur

我在 macOS Big Sur 上使用brew mongodb-community,并且可以使用 mongosh 连接到 mongo shell。但是当我尝试运行 NodeJS 和 Mongoose 应用程序时,我得到了MongooseServerSelectionError: connect ECONNREFUSED ::1:27017. 为什么我可以使用 mongo shell 连接 mongodb 而不能使用 NodeJS 和 Mongoose?

编辑:我的 NodeJS Mongoose 代码中的示例代码

import mongoose from 'mongoose';
mongoose.connect('mongodb://localhost:27017/mydb', {
    useNewUrlParser: true,
    useUnifiedTopology: true
});
Run Code Online (Sandbox Code Playgroud)

Eth*_*vis 13

我的解决方案是使用127.0.0.1而不是localhost。由于某种原因猫鼬可以阅读mongodb://127.0.0.1:27017/mydb但不能mongodb://localhost:27017/mydb

  • 如果本地节点支持 IPv6,`localhost` 将解析为 `::1`,而不是 `127.0.0.1`,因此,如果您没有在 mongod 配置中启用 IPv6 并指示它监听 `::1`,将会出现没有什么可以连接的。 (4认同)