无效的mongodb uri必须以"mongodb://"开头

Dan*_*zes 10 mongoose node.js

知道为什么我会收到此错误吗?

这是连接线

mongoose.connect("mongodb+srv://danielkmx:"+process.env.MONGO_ATLAS_PW+"@node-rest-shop-5xfup.mongodb.net/test",
{
    useMongoClient:true
});
Run Code Online (Sandbox Code Playgroud)

Set*_*san 11

我有同样的错误,当我将猫鼬包更新到最新版本时,它得到解决。


Meh*_*ein 5

我认为到目前为止,您已经找到了解决此问题的方法,但是如果其他人也有同样的问题,我将进行解释

因此,通常我们现在有2种协议(1- mongodb + srv://和2- mongodb://)可以连接到mongodb数据库。

这两个之间的主要区别是mongodb及其核心版本,您可以在package-lock.json文件中找到它,类似于下面的代码:

"mongodb": {
  "version": "3.0.0", //Your MongoDB version
  "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.0.0.tgz",
  "integrity": "",
  "requires": {
    "mongodb-core": "3.0.0"
  }
},
"mongodb-core": {
  "version": "3.0.0", //Your MongoDB version
  "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.0.0.tgz",
  "integrity": "",
  "requires": {
    "bson": "1.0.9",
    "require_optional": "1.0.1"
  }
},
Run Code Online (Sandbox Code Playgroud)

如果您想使用mongodb + srv://版本,则需要版本3.0.0或更高版本的驱动程序,可以通过以下方式简单地进行操作:

npm install mongodb@3.0.0
Run Code Online (Sandbox Code Playgroud)

**或更高

希望对您有所帮助,如果此解决方案对您有用,请确认其他用户不会再遇到我们的问题


小智 5

我同意这个解决方案,并在这里投票支持这个问题和非常正确的答案。

如果有人想要更新最新的软件包,我建议使用 npm-check-updates ( https://www.npmjs.com/package/npm-check-updates ) 来顺利更新。

安装 npm-check-updates:

    $ sudo npm install -g npm-check-updates
Run Code Online (Sandbox Code Playgroud)

检查所用软件包的最新更新:

    $ ncu
Run Code Online (Sandbox Code Playgroud)

更新包:

    $ ncu -u
Run Code Online (Sandbox Code Playgroud)

然后,安装更新的软件包:

    $ npm install
Run Code Online (Sandbox Code Playgroud)