【发布时间】:2011-11-21 03:29:45
【问题描述】:
我正在尝试使用 Node.js 中的 Mongoose 使用用户名和密码连接到 MongoDB 数据库。所有的文档都说连接字符串应该是这样的
mongodb://username:password@host:port/db
但是,密码中包含“@”字符。我怎样才能制作一个猫鼬会理解的连接字符串?我可以转义密码中的“@”还是我必须使用其他连接方法?
【问题讨论】:
-
不 - 不起作用。给它们加上 %40 也不起作用。
-
我建议将密码更改为不包含@字符的密码。
-
用斜线转义有用吗? "\@" ?
-
@AmolMKulkarni:我知道这是猫鼬用来指定连接的格式。但是 OP 想知道他如何使用包含“@”的密码?这是一个类似“p@ssw0rd”的密码(这是一个蹩脚的密码)。 url 将是“monbgodb://username:p@ssw0rd@host:port/db”,这被 mongoose 误解了(即,它在第一个 @ 而不是最后一个处拆分)。
-
密码中的字符
@需要在URL中编码。编码的@字符是%40。但是,%字符也需要编码。所以,如果你的密码是p@ss,那么最终的编码密码应该是p%2540ss