mongodb 蒙戈解析错误:无效的连接字符串

zujrkrfu  于 2023-01-25  发布在  Go
关注(0)|答案(7)|浏览(259)

我尝试用这段代码连接MongoDB数据库,但是运行时出现错误(见下面代码后面的错误)。初始错误出现在通过添加useNewUrlParser: true解决的行中,但即使在添加useNewUrlParser: true之后,我仍然出现更多错误。我使用的是MongoDB版本4.0.1。有人知道如何解决此错误吗?

mongoose.connect('User://localhost:27017/User',{ useNewUrlParser: true })

运行此代码时出错:
(node:11068)未处理承诺拒绝警告:未处理的承诺拒绝(拒绝ID:3):蒙戈解析错误:无效的连接字符串(节点:11068)[DEP0018]弃用警告:不推荐使用未处理的承诺拒绝。将来,未处理的承诺拒绝将终止Node.js进程,并显示非零退出代码。

enyaitl3

enyaitl31#

不要使用User://localhost,而是使用mongodb://localhost/,我遇到了同样的问题。

l2osamch

l2osamch2#

我收到同样的错误,然后我使用:

mongoose.connect("mongodb://localhost:27017/[yourDbName]", {
  useUnifiedTopology: true,
  useNewUrlParser: true
});

[yourDbName]替换MongoDB数据库的名称:

ocebsuys

ocebsuys3#

你写的主机不正确,应该是

mongoose.connect('mongodb://localhost:27017/User',{ useNewUrlParser: true })
ergxz8rk

ergxz8rk4#

试试这个,应该管用

mongoose.connect('mongodb://localhost/mycargarage', {useNewUrlParser: true, useUnifiedTopology: true})
    .then(() => console.log('MongoDB Connected...'))
    .catch((err) => console.log(err))
jq6vz3qz

jq6vz3qz5#

我也遇到过同样的问题。在我的例子中,这个问题是由我的密码引起的。显然,如果密码中有特殊字符,你需要使用十六进制值。

taor4pac

taor4pac6#

我只是在圆点后面添加了//来表示localhosts,它是针对mongodb 5的

const mongoose = require('mongoose');

const MONGODB_HOST = 'mongodb://localhost/'
const MONGODB_DB = 'usuarios'

mongoose.connect(MONGODB_HOST,{
    useUnifiedTopology: true,
    useNewUrlParser: true

})

    .then(db => console.log('Db connection established'))
    .catch(err => console.log(err))
m1m5dgzv

m1m5dgzv7#

    • 试试这个*** Mongoose . set('strictQuery',true);*

db.js

const express = require('express');
const mongoose =require('mongoose')
const app = express();

mongoose.set('strictQuery', true);
mongoose.connect('mongodb://localhost:27017/database_name', {
    useNewUrlParser: true, 
    useUnifiedTopology: true
})
.then(() => console.log('MongoDB Connected...'))
.catch((err) => console.log(err))

app.listen(3000,()=>{ console.log("Running on port 3000") })
npm i express mongoose
node db.js

相关问题