【问题标题】:mongodb+srv URI cannot have port numbermongodb+srv URI 不能有端口号
【发布时间】:2022-01-24 00:15:48
【问题描述】:

我有(注意:用户名和密码是编的):

const CONNECTION_URL = "mongodb+srv://smith_bob:smith_bob@hotmail.com:T@llyHo!:@cluster0.r92qc.mongodb.net/myFirstDatabase?retryWrites=true&w=majority";
const PORT = process.env.PORT || 5000;

mongoose.connect(CONNECTION_URL,{useNewUrlParser: true, useUnifiedTopology: true})
    .then(()=>app.listen(PORT,()=> console.log(`Server running on port: ${PORT}`)))
    .catch((error)=> console.log(error.message));

但是当我运行 nodemon index.js 时得到以下信息:

mondodb+srv URI 不能有端口号 \
[nodemon] 干净退出 - 重启前等待更改

有什么想法吗?

我尝试使用百分比编码字符,但出现如下错误:

. . . smith_bob:smith_bob@hotmail.com:%40@llyHo!: . . .

mongodb+srv URI 不能有端口号

. . . smith_bob%3Asmith_bob%40hotmail.com%3AT%40llyHo!%3A . . .

错误的身份验证:身份验证失败

. . . smith_bob:smith_bob%40hotmail.com%3AT%40llyHo!: . . .

密码包含非转义字符

. . . smith_bob:smith_bob@hotmail.com%3AT%40llyHo!: . . .

mongodb+srv URI 不能有端口号

【问题讨论】:

    标签: node.js mongodb express


    【解决方案1】:

    似乎是因为在主机cluster0.r92qc.mongodb.net 之前存在多个@: 而没有百分比编码。尝试以以下格式提供:

    mongodb+srv://username:password@host
    

    如果用户名或密码包含: / ? # [ ] @ 中的任何一个字符,则必须使用percent encoding 进行转换。 以您的连接字符串为例,如果用户名是smith_bob:smith_bob@hotmail.com,密码是T@llyHo!:,则应分别转换为smith_bob%3Asmith_bob%40hotmail.comT%40llyHo!%3A,连接字符串将变为:

    "mongodb+srv://smith_bob%3Asmith_bob%40hotmail.com:T%40llyHo!%3A@cluster0.r92qc.mongodb.net/myFirstDatabase?retryWrites=true&w=majority"
    

    要了解有关连接字符串格式的更多信息,请参阅here

    【讨论】:

    • 非常感谢。我尝试使用百分比编码,但仍然出现错误。我编辑了原始帖子以包含我收到的错误。我的百分比编码是否不正确?谢谢!
    【解决方案2】:

    尝试上一篇文章中提到的百分比解码。对我来说,它奏效了。 如果用户名是user,密码是user@,那么mongodb+srv://user:user%40@cluster0.r92qc.mongodb.net/myFirstDatabase?retryWrites=true&w=majority

    其中 %40 是密码中 @ 的百分比编码。

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 2022-08-11
    • 2019-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-29
    • 1970-01-01
    • 2012-12-20
    相关资源
    最近更新 更多