首页 > 解决方案 > Mongoose 无法连接:错误:querySrv ENOTIMP mongodb.tcp.cluster1-owfxv.mongodb.net

问题描述

Mongoose 无法连接到 mogodb Atlas。它每次都给我这个错误:

 Error: querySrv ENOTIMP _mongodb._tcp.cluster1-owfxv.mongodb.net

我在本地 minikube 内的 kubernetes 集群内运行。如果我直接运行项目,那么它可以完美运行,但是使用 minikube 它总是给我错误。

以下是我的代码:

  const url = "mongodb+srv://name:password@cluster1-owfxv.mongodb.net/test?retryWrites=true";

    const mongoDbOptions = {
        useNewUrlParser: true,
        reconnectTries: 10,
        autoReconnect: true

    };
    mongoose.connect(url, mongoDbOptions).then((r) => { }).catch((e) => {
        console.log(e);
    });

错误信息对我来说不是很清楚。奇怪的是它可以直接工作,但是对于 Kubernetes 集群它不起作用。

我将非常感谢任何贡献。

标签: node.jsmongodbmongoosekubernetes

解决方案


尝试使用与 mongo 驱动程序 2.2.12 或更高版本兼容的连接字符串,即带有 mongodb://username:password@host1:port,host2:port,host3:port/databaseName 的连接字符串

目前尚不清楚为什么与 mongodb 的连接不适用于新的 url。


推荐阅读