En même temps que aws et mongodb, je suis nouveau La raison en est que je ne suis pas en mesure de créer le chemin d'accès à ma base de données.
Voici ce que j'essaie d'utiliser: mongoose.connect('mongod://[email protected]:27017/test' )
.
Et voici le résultat de ma fonction de test lambda: UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): Error: URL malformed, cannot be parsed
J'utilise mongodb 3.6.5.
Mongoose 5.x prend en charge la syntaxe suivante pour l’autorisation et s’assure également que vous n’avez utilisé aucun caractère spécial dans l’URL comme @,-,+,>
mongoose.connect(MONGO_URL, {
auth: {
user: MONGO_DB_USER,
password: MONGO_DB_PASSWORD
}
})
Ou si vous souhaitez supprimer l'avertissement de privation Évitez que "l'analyseur de chaîne d'URL en cours soit obsolète"
Ajouter l'option useNewUrlParser
mongoose.connect(MONGO_URL, {
auth: {
user: MONGO_DB_USER,
password: MONGO_DB_PASSWORD
},
{ useNewUrlParser: true }
})
Mon problème était un problème plus simple d'URI. Comme il y avait un caractère @
dans l'adresse du mongod.
Je devais utiliser ceci:
return mongoose.connect(encodeURI(process.env.DB_CONNECT)
Si vous avez utilisé l'URI suivant dans votre fichier d'environnement, par exemple
MongoDB://<dbuser>:<dbpassword>@ds055915.mlab.com:55915/fullstack-vue-graphql
Assurez-vous que votre mot de passe dansMONGOD_URI
ne comporte pas de caractère spécial comme @
. J'avais utilisé @
dans le caractère de mon mot de passe et j'obtenais l'erreur. Après avoir supprimé les caractères spéciaux de mon DB Password
, tout a fonctionné comme prévu.
Dans mon cas, le ci-dessous a bien fonctionné.
À l'intérieur db.js
const mongoose = require('mongoose');
const MONGODB_URI = "mongodb://Host-name:27017/db-name?authSource=admin";
const MONGODB_USER = "mongouser";
const MONGODB_PASS = "myasri*$atIP38:nG*#o";
const authData = {
"user": MONGODB_USER,
"pass": MONGODB_PASS,
"useNewUrlParser": true,
"useCreateIndex": true
};
mongoose.connect(
MONGODB_URI,
authData,
(err) => {
if (!err) { console.log('MongoDB connection succeeded.'); }
else { console.log('Error in MongoDB connection : ' + JSON.stringify(err, undefined, 2)); }
}
);
Remarque:
La version de mon nœud est 10.x
La version du serveur MongoDb est 3.6.3
la version mangouste est ^ 5.1.2
Je veux juste mettre à jour la réponse de @ anthony-winzlet, parce que j'ai la même erreur et que j'ai résolu avec ce code.
mongoose.connect(url, {
auth: {
user:'usrkoperasi',
password:'password'
},
useNewUrlParser:true
}, function(err, client) {
if (err) {
console.log(err);
}
console.log('connect!!!');
});
Je viens d'ajouter callback et useNewUrlParser:true
. J'utilise "mongoose": "^5.2.7",
.
Bonne codage!