(node:3341) DeprecationWarning: Mangouste: mpromise
Je suis en train de développer une classe sur le haut de la mangouste avec mes méthodes personnalisées, donc j'ai étendu la mangouste avec ma propre classe, mais quand j'invoque pour créer une nouvelle voiture méthode, il fonctionne, mais sa bande et de l'erreur, ici, je vous laisse voir ce que je suis en train de faire.
Je suis de cet avertissement
(node:3341) DeprecationWarning: Mongoose: mpromise (mongoose's default promise library) is deprecated, plug in your own promise library instead: http://mongoosejs.com/docs/promises.html
après je ne
driver.createCar({
carName: 'jeep',
availableSeats: 4,
}, callback);
pilote est une instance de la classe du Pilote
const carSchema = new Schema({
carName: String,
availableSeats: Number,
createdOn: { type: Date, default: Date.now },
});
const driverSchema = new Schema({
email: String,
name: String,
city: String,
phoneNumber: String,
cars: [carSchema],
userId: {
type: Schema.Types.ObjectId,
required: true,
},
createdOn: { type: Date, default: Date.now },
});
const DriverModel = mongoose.model('Driver', driverSchema);
class Driver extends DriverModel {
getCurrentDate() {
return moment().format();
}
create(cb) {
//save driver
this.createdOn = this.getCurrentDate();
this.save(cb);
}
remove(cb) {
super.remove({
_id: this._id,
}, cb);
}
createCar(carData, cb) {
this.cars.push(carData);
this.save(cb);
}
getCars() {
return this.cars;
}
}
des idées sur ce que je fais de mal?
- L'écrivain de la Mangouste dit que: "Just do
mongoose.Promise = global.Promise
et vous ne devriez pas obtenir que l'avertissement de plus." github.com/Automattic/mongoose/issues/...
Vous devez vous connecter pour publier un commentaire.
Voici ce qui a fonctionné pour moi d'éclaircir la question, après la lecture de docs:
http://mongoosejs.com/docs/promises.html
L'exemple de la doc est à l'aide de la bluebird promesse de la bibliothèque, mais j'ai choisi d'aller avec native ES6 promesses.
Dans le fichier où je vais appeler
mongoose.connect
:[EDIT: Merci à @SylonZero pour mettre en place un rendement faille dans ma réponse. Depuis cette réponse, c'est tellement vu, je ressens un sentiment de devoir à faire de cette édition et pour encourager l'utilisation de
bluebird
au lieu de natif de promesses. Veuillez lire la réponse en dessous pour plus instruits et expérimentés de détails. ]Alors que la réponse ci-dessus est exacte et travaux, vous avez pour tenir compte de la question de la Performance si vous avez un vrai, la production Nœud app.
La solution ci-dessus sera natif ES6 promesses - qui sont 4X plus lente que bluebird dans les benchmarks que j'ai partagée ci-dessous. Cela pourrait considérablement affecter la performance d'une API écrite en Nœud et l'utilisation de MongoDB.
Je recommande l'utilisation de Bluebird:
Les Résultats D'Un Benchmark
Plate-forme: (en utilisant les dernières Nœud au moment de l'écriture)
ECONNREFUSED
avaient envoyé de mongo. Sans cette ligne, il est de la connexion...promise
l'erreur a été de sensibilisation. Faussement j'ai alors pensé qu'il y aurait une dépendance. Donc tout est cool. Celui-ci est de travailler pour moi :). Fait monter elle.avez-vous essayé?
Par Exemple :
si vous créez un modèle à partir d'une mangouste instance qui est la promesse n'était pas redéfini chaque requête sur ce modèle permettrait de lancer l'alerte.
On a besoin d'avoir une connexion à l'aide de la promesse de la dernière version de la mangouste [ceci est le lien][1]
[1]: http://mongoosejs.com/docs/promises.html
Il suffit d'ajouter le deuxième paramètre comme un objet à la méthode connect ().
Voir: http://mongoosejs.com/docs/connections.html#use-mongo-client
Je pense que vous avez votre réponse mais j'utilise mondiale.promesse avec la gestion des erreurs
Mangouste 4.8.6
Si vous avez des captures d'erreur comme ceci:
Vous devez également définir les options de la promesse de la bibliothèque à utiliser pour le conducteur.
ce travail pour moi.