You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Index.js无法连接MongoDB,如何用Node.js连接二者并创建API?

报错原因

MongooseServerSelectionError: connect ECONNREFUSED ::1:27017 错误核心是Mongoose默认优先使用IPv6本地地址::1发起连接,但默认安装的MongoDB仅监听IPv4的127.0.0.1:27017端口,导致连接请求被拒绝。

修复步骤
  • 第一步:修改连接字符串强制走IPv4
    将连接配置中的localhost替换为127.0.0.1,示例代码:
// 调整前的连接写法
// mongoose.connect('mongodb://localhost:27017/your_db_name')
// 调整后的连接写法
mongoose.connect('mongodb://127.0.0.1:27017/your_db_name')

绝大多数情况下修改后即可正常连接。

  • 第二步:确认MongoDB服务正常运行
    如果修改连接字符串后仍报错,检查本地MongoDB服务状态:

    • Windows系统:打开服务列表,找到MongoDB对应服务,确认状态为「正在运行」,未启动则手动启动
    • Linux系统:执行 sudo systemctl start mongod 启动服务
    • macOS系统:Homebrew安装的MongoDB执行 brew services start mongodb-community 启动服务
  • 第三步:(可选)配置MongoDB支持IPv6连接
    如果需要保留localhost写法,可修改MongoDB配置文件允许监听IPv6地址:
    打开MongoDB配置文件(默认路径:Windows为C:\Program Files\MongoDB\Server\版本号\bin\mongod.cfg,Linux/macOS为/etc/mongod.conf),找到net.bindIp配置项,修改为:

    net:
      port: 27017
      bindIp: 127.0.0.1,::1
    

    保存后重启MongoDB服务即可。

可选优化:添加连接状态监听

建议在代码中添加连接成功/失败的回调,方便后续定位问题:

mongoose.connect('mongodb://127.0.0.1:27017/your_db_name')
  .then(() => console.log('MongoDB 连接成功'))
  .catch(err => console.error('MongoDB 连接失败:', err))

内容的提问来源于stack exchange,提问作者Julien Loubere

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 02:24:07