Les caractères comme @ sont limités car ils perturbent la structure de l'URL. La raison en est que MongoDB l'interprète comme le séparateur @. Au lieu de cela :
var mongoClient = require("mongodb").MongoClient;
mongoClient.connect("mongodb://myuser:myp@ssword@myhost.documents.azure.com:10355/?ssl=true", function (err, db) {
db.close();
});
utilisez ceci
mongoClient.connect("mongodb://myuser:myp%40ssword@myhost.documents.azure.com:10355/?ssl=true", {
uri_decode_auth: true
}, function (err, db) {
db.close();
});
Pour encoder le mot de passe, utilisez encodeURIComponent(password)
Vous pouvez également utiliser cette syntaxe.
mongoClient.connect("mongodb://myhost.documents.azure.com:10355/?ssl=true",
{user: 'username', pass: 'p@ssword'}, function (err, db) {
db.close();
});
Sur les versions ultérieures, utilisez
auth: {
user: 'username',
password: 'p@ssword',
}
comme ci-dessous
mongoClient.connect("mongodb://myhost.documents.azure.com:10355/?ssl=true", {
auth: {
user: 'username',
password: 'p@ssword',
}}, function (err, db) {
db.close();
});