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

Node.js 17/18版本中Mongoose连接MongoDB失败求助

解决Node.js 18(17+)下Mongoose连接MongoDB失败的问题

核心解决方案

1. 强制使用IPv4连接

Node.js 17及以上版本默认优先采用IPv6解析DNS,若MongoDB服务器未配置IPv6支持,会直接导致连接失败。在Mongoose连接配置中添加family: 4参数,强制使用IPv4协议:

const mongoose = require("mongoose");

const { MONGO_URI } = process.env;

exports.connect = () => {
  mongoose
    .connect(MONGO_URI, {
      family: 4
    })
    .then(() => {
      console.log("Successfully connected to database");
    })
    .catch((error) => {
      console.log("database connection failed. exiting now...");
      console.error(error);
      process.exit(1);
    });
};

2. 升级Mongoose至兼容版本

旧版Mongoose(如5.x系列)与Node.js 18存在兼容性冲突,直接升级到最新稳定版即可解决大部分适配问题:

npm install mongoose@latest

3. 调整本地连接字符串

若连接本地MongoDB,将URI中的localhost替换为127.0.0.1,绕开IPv6解析的优先级问题:

  • 原连接串:mongodb://localhost:27017/your-db-name
  • 修改后:mongodb://127.0.0.1:27017/your-db-name

4. 验证MongoDB服务状态

确认MongoDB服务已正常启动,且允许当前进程所在IP访问,同时检查端口(默认27017)未被防火墙或其他进程占用。


内容的提问来源于stack exchange,提问作者barak formanski

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 16:30:55