iZ.*_*iZ. 76 mongoose mongodb node.js
我正在尝试使用Node.js中的Mongoose使用用户名和密码连接到MongoDB数据库.所有文档都说连接字符串应该是这样的
mongodb://username:password@host:port/db
Run Code Online (Sandbox Code Playgroud)
但是,密码中包含"@"字符.我怎么能用这个mongoose能理解的连接字符串?我可以在密码中转义'@',还是有另一种连接方法我必须使用?
And*_*kin 92
使用此语法,不要忘记该__CODE__
选项.
mongoClient.connect("mongodb://username:p%40ssword@host:port/dbname?authSource=admin", {
useNewUrlParser: true
}, function(err, db) {
}
);
Run Code Online (Sandbox Code Playgroud)
Joh*_*yHK 27
使用调用的options
参数mongoose.connect
指定密码,而不是将其包含在URL字符串中:
mongoose.connect('mongodb://localhost/test',
{user: 'username', pass: 'p@ssword'},
callback);
Run Code Online (Sandbox Code Playgroud)
van*_*102 27
如果您的密码有特殊字符:
const dbUrl = `mongodb://adminUsername:${encodeURIComponent('adminPassword')}@localhost:27017/mydb`;
Run Code Online (Sandbox Code Playgroud)
试试这个,我的朋友:
mongoose.connect("mongodb://localhost:27017/test?authSource=admin",
{user: 'viettd', pass: 'abc@123'});
Run Code Online (Sandbox Code Playgroud)
test
是我的数据库名称
admin
是我的身份验证数据库
viettd
是我的用户名
abc@123
是我的密码
使用 pwd 代替 pass,这对我的 version3.2 有用
mongoose.connect('mongodb://localhost/test',
{user: 'username', pwd: 'p@ssword'},
callback);
Run Code Online (Sandbox Code Playgroud)
我也面临同样的问题。我已经解决了将编码后的密码添加到连接字符串中的问题。而且效果很好。
(1)通过https://www.url-encode-decode.com对
您的密码进行编码(2)将密码替换为已编码的密码。
(3)应该运作良好。
例如:
实际密码:ABCDEX $ KrrpvDzRTy` @ drf。'; 3X
编码密码:ABCDEX%24KrrpvDzRTy%60%40drf。%27%3B3X
mongodb:// user1:ABCDEX%24KprpvDzRTy%60%40drf.%27%3B3X@dstest.com:1234,ds1234-test.com:19889 / mongo-dev?replicaSet = rs-ds123546978&ssl = true',
如果您使用 Mongodb 原生 Node.js 驱动程序,那么从 3.1 驱动程序版本开始,这对我有用。假设您的网址不包含身份验证信息。
MongoClient = require('mongodb').MongoClient;
let options = {
useNewUrlParser: true,
auth: {
user: 'your_usr',
password: 'your_pwd'
}
};
MongoClient.connect(url, options, callback);
Run Code Online (Sandbox Code Playgroud)
或者,如果您想在 url 中包含身份验证信息,请执行以下操作:
let url = "mongodb://username:" + encodeURIComponent("p@ssword") + "@localhost:27017/database"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
52185 次 |
最近记录: |