Je travaille avec Mongoose. J'ai vu beaucoup de développeurs faire la commande suivante:
mongoose.Promise = global.Promise;
Ensuite, j'étais curieux de voir quelle est la valeur d'origine de mongoose.Promise
. J'ai entré dans l'éditeur la commande suivante:
const mongoose = require("mongoose");
console.log("promise: ", mongoose.Promise);
Ma console m'a rendu:
promesse: fonction Promise () {[code natif]}
Bon, alors pourquoi faire la commande mongoose.Promise = global.Promise
puisque la promesse de Mongoose retourne déjà un code natif? Je ne comprends pas le point, si quelqu'un peut nous aider à comprendre, ce serait génial,
Merci
Il s'agit d'un code hérité d'anciens exemples qui n'est pas nécessaire avec Mongoose 5.
Mongoose 4 s'est appuyé sur sa propre mise en œuvre de la promesse, mpromise
. mongoose.Promise
n'était pas nécessairement Promise
global.
En tant que Documentation Mongoose 4 déclare:
Mongoose 5.0 utilisera les promesses natives par défaut (ou bluebird, Si les promesses natives ne sont pas présentes) mais quand même soutenir brancher votre propre bibliothèque de promesses compatible ES6. Mangouste 5.0 ne soutiendra pas mpromise.
Bien que l'affirmation à propos de Bluebird ne soit plus vraie; Mongoose 5 a abandonné le support des versions de Node qui n’ont pas de promesse native.
mongoose.Promise = global.Promise;
peut toujours être nécessaire si global.Promise
a été affecté à une autre implémentation (par exemple, Bluebird) après l’importation de Mongoose, bien que le mieux serait d’attribuer global.Promise = Bluebird
plus tôt.
Si nous voulons utiliser la mangouste à une position différente dans les codes, elle doit être considérée comme un mode global. C'est pourquoi nous devons définir la mangouste comme suit:
mongoose.Promise = global.Promise;
nous avons utilisé juste au moment où nous voulons nous connecter à la base de données MongoDB:
var mangouste = require ('mangouste');
var mongoDB = 'URL de la base de données';
mongoose.connect (mongoDB);
mongoose.Promise = global.Promise;
mongoose.connection.on ('error', console.error.bind (console, 'erreur de connexion MongoDB:'));
vous devez créer un schéma et faire votre propre modèle après