mongoose 无效的mongodb URI必须以“mongodb://”开始

zbsbpyhn  于 2023-01-17  发布在  Go
关注(0)|答案(6)|浏览(269)

你知道为什么我会得到这个错误吗?
这是连接线

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

svujldwt1#

我遇到了同样的错误,当我将mongoose包更新到最新版本时,它得到了解决。

p8ekf7hl

p8ekf7hl2#

我想现在你已找到这个问题的答案,但我会解释,如果其他人也有同样的问题
因此,通常我们现在有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"
  }
},

如果你想使用mongodb+srv://版本,那么你需要一个3.0.0或更高版本的驱动程序,你可以简单地通过:

npm install mongodb@3.0.0

**或以上

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

4ioopgfo

4ioopgfo3#

我同意这个解决方案,并在这里投票赞成这个问题和非常正确的答案。
如果有人想更新最新的软件包,我建议使用npm-check-updates(https://www.npmjs.com/package/npm-check-updates)来进行平滑更新。
安装npm-check-updates:

$ sudo npm install -g npm-check-updates

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

$ ncu

更新包:

$ ncu -u

然后,安装更新的程序包:

$ npm install
qnzebej0

qnzebej04#

使用以下版本的mongoose帮助我解决了这个问题

npm i mongoose@5.7.0
q5lcpyga

q5lcpyga5#

我遇到了同样的问题,但使用的是mongorestore命令。我执行了brew update mongodb,导致了以下错误。
unknown or unsupported macOS version: :mountain_lion
然后,我卸载了mongodb,并通过运行brew install mongodb/brew/mongodb-database-tools安装了数据库工具,这为我解决了问题,我能够使用以下命令恢复数据库:
mongorestore --uri=mongodb+srv://<user>:<password>@cluster0.wtdv4.mongodb.net/<db-name> --db <db-name> <input-dir>

eni9jsuy

eni9jsuy6#

虽然我需要MongoDB和mongoose的版本,因为我正在为应用程序制作套接字包,我的套接字包不是最新的,由于它没有工作,所以关键是要确保包更新,以适应新的变化。

相关问题