Partage
  • Partager sur Facebook
  • Partager sur Twitter

Error chap2 cours Node passer au fullstack QCM

Error supposé de version node

    1 juin 2024 à 10:46:28

    Bonjour,
    En suivant le cours de Node Backend (Passez au Full Stack avec Node.js, Express et MongoDB), dernière MAJ le 17/02/2023
    J'ai fait un git clone de https://github.com/OpenClassrooms-Student-Center/fullstack-activity
    que j'ai renommé frontend dans mon dossier de travail,
    puis j'ai fait un npm install --save-dev run-script-os
    dans le dossier frontend pour installer run-script-os et répondre à l'erreur dans le terminal :
    sh: 1: run-script-os: not found
    ensuite j'ai lancé npm install et npm start dans le dossier frontend...
    puis j'ai créé un dossier backend à partir duquel j'ait lancé (la version de node est la 18):
    npm install
    npm install express
    npm install -g nodemon
    npm install mongoose
    nodemon server
    j'ai configuré un cluster sur le site de mongoDB et importé mon utilisateur et mot de passe dans le fichier app.js:
    const mongoose = require('mongoose');
    mongoose.connect('mongodb+srv://<user>:<motdepasse>@testingnodeop.bdomzpe.mongodb.net/?retryWrites=true&w=majority&appName=testingnodeop')
      .then(() => console.log('Connexion à MongoDB réussie !'))
      .catch(() => console.log('Connexion à MongoDB échouée !'));
    Le code de mon server.js à la racine du backend dossier est correct et créé le serveur écoutant le port 3000, le frontend est sur le port 8081,
    Toutes mes routes fonctionne avec postman !!! Le backend n'est donc pas buggé, c'est pour celà que je ne mets pas le code à disposition de suite, on verra si il y en a besoin mais si postman trouve toujours les routes en code 200, ce n'est vraiment pas la peine...
    Route getOne(),
    Route getAll()
    Route create (post):
    Route modify (put):
    Route DeleteOne:
    Dans le header autorisant l'application 
    J'ai du ajouté une csp requise par google chrome depuis peu dans le CORS des entêtes pour résoudre une 404:
    res.setHeader('Content-Security-Policy', "script-src 'unsafe-inline'; connect-src https://infragrid.v.network/wallet/getnodeinfo; default-src 'unsafe-inline'; style-src 'self'; font-src 'self'; img-src 'self'; frame-src 'self'");
    Il semble vraisemblable que les versions >= à node 18 (maj majeure) pose problème (le backend est débuggé, toutes les requêtes fournies à l'API avec postman sont ok en code 200 et sans erreurs, reste le frontend qui n'est pas accessible), le frontend code est illisible...
    Je pense que l'apli frontend est bloquante (<=node 18) et de ce fait je ne récupère pas le champ secret GIRAFFE || ELEPHANT ||GORILLA ||ZEBRA, pour valider le certificat
    En février 2022, dernière MAJ du cours, quelle était la version de node que je run npm install et npm run start avec la bonne version?
    Merci,

    -
    Edité par Vinz49 2 juin 2024 à 17:16:36

    • Partager sur Facebook
    • Partager sur Twitter
      19 juin 2024 à 7:30:03 - Message modéré pour le motif suivant : Merci d'écrire en français


        19 juin 2024 à 10:15:34

        Salut

        En comparant la date mentionnée avec les publications de versions, je dirais :

        • 10 pour la version LTS d'alors
        • 15 pour la version en pointe

        Toutes deux sorties en avril 2021 si j'en crois les dates sur la page liée — mais je soupçonne que ce soient les dates de la dernière version mineure.

        En regardant les dates de sortie, j'aurais plutôt node LTS 16.

        -
        Edité par Ymox 19 juin 2024 à 10:21:11

        • Partager sur Facebook
        • Partager sur Twitter
          29 juin 2024 à 17:21:24

          Merci Ymox,

          J'ai obtenu une réponse des rélamations,

          Il ne s'agit pas de la version de node,

          Je suis débuggé il faut savoir que le Frontend envoie un objet déjà parsé et l e resultat est une promesse dans then((result)=>{

          res.status(201).json({product: result})

          })

          Donc il s'agit de ce code qui fonctionne :

          app.post('/api/products', (req, res, next) => {
            delete req.body._id;
            const product = new Product({
              ...req.body
            });
              product.save()
              .then((result) => {
                  console.log(result);
                  res.status(201).json( {product:result} )
              })
              .catch(error => res.status(400).json({ error }));
          });

          et non de celui-ci par exemple (ce code est tout a fait crédible si l'on envoie rien depuis le front, mais se perccute avec les données du front autrement):

          const Product = new product({
            'name': 'Mon objet',
            'description': 'Les infos de mon objet',
            'price': 4900,
            'inStock': true,
          });
          
          app.post('/api/products', (req, res, next) => {
              Product.save()
              .then(() => res.status(201).json({ Product }))
              .catch(error => res.status(400).json({ error }));
          });

          Dans le cours

          • Partager sur Facebook
          • Partager sur Twitter

          Error chap2 cours Node passer au fullstack QCM

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