Javascript ';数据库名称必须是字符串';使用我的连接字符串连接时出错

Javascript ';数据库名称必须是字符串';使用我的连接字符串连接时出错,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,我正试图通过软件包mongoose连接到MongoDB,但在MongoError行中出现错误:数据库名称必须是字符串 我使用的是Windows,在脚本中,我还连接了其他两个API,它们都已连接。我尝试在需要mongoose和连接时添加我的数据库名(.MyDatabaseName结尾) 预计它将输出连接的,,但它在MongoError中出错:数据库名称必须是字符串,无论出于何种原因,新的url解析器似乎无法处理某些url 作为一个快速修复方法,您可以尝试使用{useNewUrlParser:fal

我正试图通过软件包
mongoose
连接到MongoDB,但在
MongoError行中出现错误:数据库名称必须是字符串

我使用的是Windows,在脚本中,我还连接了其他两个API,它们都已连接。我尝试在需要mongoose和连接时添加我的数据库名(
.MyDatabaseName
结尾)


预计它将输出连接的
,但它在
MongoError中出错:数据库名称必须是字符串,无论出于何种原因,新的url解析器似乎无法处理某些url


作为一个快速修复方法,您可以尝试使用
{useNewUrlParser:false}

将数据库名称包含在URI字符串中,以恢复到原来的名称。例如<代码>mongodb+srv://MyUserName:MyPassword@williamdata7kmxm.mongodb.net/MyDatabaseName

然后,它将指向特定的数据库。

在您的URI中,它在后面显示mongodb.net put slash和数据库名称,例如:

mongoose.connect('mongodb+srv://<username>:<password>@<instance>.mongodb.net/**nameDatabase**', {dbName: "Eclipse"}, {useNewUrlParser: true})
mongoose.connect('mongodb+srv://:@.mongodb.net/**nameDatabase**',{dbName:“Eclipse”},{useNewUrlParser:true})

试试这个:
mongoose.connect('mongodb+srv://MyUserName:MyPassword@williamdata7kmxm.mongodb.net/,{dbName:'yourDbName'})添加dbname,因为您使用的是mongodb+srv语法,使用新的URL解析器已经有了修复。无论如何谢谢你though@William如果你有时间,请分享你的修复方法:-)我很抱歉,我应该把它放在这个评论部分吗?@William可以回答你自己的问题,那将是一个伟大的:)连接工作,但抛出反对警告说它应该是真的除了回答一个超过2年的问题,请不要传播凭据(这些是“实时”凭据-我已测试过)。我把它们从你的答案中删掉了(尽管任何有足够代表性的人都可以看到它们),我只是从上面的评论中复制了它们作为一个例子,并想用不同的方式解释,让其他人看到这一点,我不认为任何人会被冒犯,因为我是新来的,我可以看到它们,所以任何人都可以看到它们。这与被冒犯无关。OP犯了一个错误,在评论中发布了真实的凭证(如果是在他们最初的问题中,我可以很容易地将它们删掉)。这是将来要注意的事情,以确保你永远不会重播这样的事情。正如我已经说过的,我已经处理好了。至于谁能看到你答案的历史记录:只有拥有数千个代表分数的人才能看到编辑历史记录和未编辑的用户名/密码(不是说你,因为你是答案的作者)。
mongoose.connect('mongodb+srv://<username>:<password>@<instance>.mongodb.net/**nameDatabase**', {dbName: "Eclipse"}, {useNewUrlParser: true})