Partage
  • Partager sur Facebook
  • Partager sur Twitter

MERN - `useFindAndModify` is an invalid option

    11 mai 2022 à 20:35:41

    Bonjour a tous 

    Je fait mon premier projet MERN en suivant ce tuto video

    Cependant j'ai une erreur je ne sais pas si ça viens de mon code ou mes dépendance. 

    Voici mon code index.js coté server 

    import express from "express";
    import bodyParser from "body-parser";
    import mongoose from "mongoose";
    import cors from "cors";
    
    const app = express();
    
    app.use(bodyParser.json({ limit: "30mb", extended: true }));
    app.use(bodyParser.urlencoded({ limit: "30mb", extended: true }));
    app.use(cors());
    
    const CONNECTION_URL =
      "mongodb+srv://Wilfried:Mot2Passe@cluster0.44zb6.mongodb.net/myFirstDatabase?retryWrites=true&w=majority";
    const PORT = process.env.PORT || 5000;
    
    mongoose
      .connect(CONNECTION_URL, { useNewUrlParser: true, useUnifiedTopology: true })
      .then(() =>
        app.listen(PORT, () => console.log(`Server runnning on port: ${PORT}`))
      )
      .catch((error) => console.error(error.message));
    
    mongoose.set("UseFindAndModify", false);

    Et voici l'erreur 

    D:\Programmations\React2022\MERN Social Media\server\node_modules\mongoose\lib\index.js:183
        throw new Error(`\`${key}\` is an invalid option.`);                           x.js:183
              ^
    
    Error: `UseFindAndModify` is an invalid option.
        at Mongoose.set (D:\Programmations\React2022\MERN Social Media\server\node_modules\mongoose\lib\index.js:183:11)                                                  les\mongoose\lib\index.js
        at file:///D:/Programmations/React2022/MERN%20Social%20Media/server/index.js:23:10                                                                                :10
        at ModuleJob.run (internal/modules/esm/module_job.js:170:25)
        at async Loader.import (internal/modules/esm/loader.js:178:24)
        at async Object.loadESM (internal/process/esm_loader.js:68:5)
    [nodemon] app crashed - waiting for file changes before starting...



    -
    Edité par Tortue_Ninja 11 mai 2022 à 20:50:55

    • Partager sur Facebook
    • Partager sur Twitter

    Seul on va plus vite, ensemble on va plus loin. 'KawaBunga'

      12 mai 2022 à 0:17:46

      Bonjour, a priori le nom du paramètre commence par une minuscule.

      mongoose.set("useFindAndModify", false);


      Je crois que la documentation indique une dépréciation en faveur des paramètres passé au niveau de la méthode connect:

      mongoose
        .connect(
        	CONNECTION_URL,
          {
          	useNewUrlParser: true,
              useUnifiedTopology: true,
              useFindAndModify: false
      	})

      -
      Edité par SamuelGaborieau3 12 mai 2022 à 0:18:13

      • Partager sur Facebook
      • Partager sur Twitter

      suggestion de présentation.

        12 mai 2022 à 21:40:26

        Salut, 
        J'ai recitifié en mettant la minuscule, toujours le même problème. 

        Ensuite via un post reedit j'ai trouvé ça je sais pas si c'est juste ... qui propose de remplacer la ligne 

        mongoose.set("UseFindAndModify", false);

        par

        mongoose.connect(CONNECTION_URL).then(() => {
          console.log("...");
        });

        mais je ne pense que ça regle le probleme je me trompe ? 

        -
        Edité par Tortue_Ninja 12 mai 2022 à 22:18:24

        • Partager sur Facebook
        • Partager sur Twitter

        Seul on va plus vite, ensemble on va plus loin. 'KawaBunga'

          13 mai 2022 à 18:09:37

          Rebonjour,

          Le fichier CHANGELOG.MD sur le Github de mongoose, indique pour la version 6 de mongoose:

          BREAKING CHANGE: remove useFindAndModify option, always use MongoDB's native findOneAndReplace() rather than legacy findAndModify() #8737

          A partir de la version 6 de mongoose le paramètre useFindAndModify est supprimé.

          A noté que ce paramètre a été en déprécié depuis la version 5.5.3 (2019-04-22)

          Actuellement sur NPM la version avec le tag latest de mongoose correspond à la version 6.3.3

          Tu peux regarder dans ton fichier package.json quelle version tu as installée.

          Si tu as simplement fait un:

          $ npm i --save mongoose

          par défaut npm installe la version avec le tag latest du package.

          A priori ce paramètre après avoir eu une (relativement) longue période de dépréciation a été supprimée et n'existe plus dans les versions récentes de mongoose.

          Les différentes réponses que tu as trouvé sur le sub reddit l'indique aussi d'ailleurs:

          You are explicitly setting useFindAndModify with .set() . Remove this line:
          
          mongoose.set("useFindAndModify", false);

          Si tu suis un tutoriel/cours qui utilises du code obsolète, le cours lui même est obsolète et présente un contenu difficilement utilisable.

          • Partager sur Facebook
          • Partager sur Twitter

          suggestion de présentation.

            14 mai 2022 à 21:41:19

            C'est dommage le projet proposé me plaisait, la chaine à de bon commentaire, par contre j'ai l'impression que c'est une voix de robot.
            Le liens est présent dans le premier post au cas ou tu veux le voir. C'est la chaine JSmastery. 
            Mais effectivement je me dis que c'est peut être mieux de me perfectionner sur Redux, puis sur Node avant de faire le projet. 

            Merci elles sont toujours au top tes réponses. 
            Tu es celui qui m'aide le plus sur openClassRoom. 

            • Partager sur Facebook
            • Partager sur Twitter

            Seul on va plus vite, ensemble on va plus loin. 'KawaBunga'

            MERN - `useFindAndModify` is an invalid option

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            • Editeur
            • Markdown