Partage
  • Partager sur Facebook
  • Partager sur Twitter

Cours passez au full stack avec Node.js, problème

blocage à la section 2, 3 eme cours

    15 septembre 2022 à 13:57:41

    Salut tout le monde, je suis bloqué de chez bloqué au 3 ème cours de la partie 2 de ce cours pour créer un nouvel objet.

    Quand j'envoie le formulaire j'ai une erreur " Form submission canceled because the form is not connected "

    et aussi " POST http://localhost:3000/api/stuff 400 (Bad Request) ".

    J'ai aussi un problème au refresh de page qui me met une erreur "Aucune page Web trouvée à l'adresse :", j'ai vu que j'étais pas le seul à avoir ce problème.


    Je suis en version node 17.6.0.


    Mes fichiers app et server =>

    //Mon fichier app.js
    
    const express = require('express');
    const bodyParser = require("body-parser");
    const mongoose = require('mongoose');
    const Thing = require('./models/thing');
    
    mongoose.connect('mongodb+srv://stef1117:passwordd@cluster0.4ntfb7t.mongodb.net/?retryWrites=true&w=majority',
      { useNewUrlParser: true,
        useUnifiedTopology: true })
      .then(() => console.log('Connexion à MongoDB réussie !'))
      .catch(() => console.log('Connexion à MongoDB échouée !'));
    
    const app = express();
    
    
    app.use((req, res, next) => {
        res.setHeader('Access-Control-Allow-Origin', '*');
        res.setHeader('Access-Control-Allow-Headers', 'Origin, X-Requested-with, Content, Accept, Content-Type, Authorization');
        res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, PATCH, OPTIONS');
        next();
    });
    
    app.use(bodyParser.json());
    
    
    app.post('/api/stuff', (req, res, next) => {
      delete req.body._id;
      const thing = new Thing({
        ...req.body
      });
      thing.save()
        .then(() => res.status(201).json({ message: 'Objet enregistré !'}))
        .catch(error => res.status(400).json({ error }));
    });
    
    
    app.use('/api/stuff', (req, res, next) => {
        const stuff = [
          {
            _id: 'oeihfzeoi',
            title: 'Mon premier objet',
            description: 'Les infos de mon premier objet',
            imageUrl: 'https://cdn.pixabay.com/photo/2019/06/11/18/56/camera-4267692_1280.jpg',
            price: 4900,
            userId: 'qsomihvqios',
          },
          {
            _id: 'oeihfzeomoihi',
            title: 'Mon deuxième objet',
            description: 'Les infos de mon deuxième objet',
            imageUrl: 'https://cdn.pixabay.com/photo/2019/06/11/18/56/camera-4267692_1280.jpg',
            price: 29000,
            userId: 'qsomihvqios',
          }
        ];
        res.status(200).json(stuff);
      });
    
    module.exports = app;
    
    // mon fichier server.js
    
    const http = require('http');
    const app = require('./app');
    
    app.get("/part-one/all-stuff", (req, res) => {
      res.redirect(301, "/")
    })
    
    app.get("/part-three/auth/login", (req, res) => {
      res.redirect(301, "/")
    
    })
    
    app.get("/part-four/auth/login", (req, res) => {
      res.redirect(301, "/")
    })
    
    const normalizePort = val => {
      const port = parseInt(val, 10);
    
      if (isNaN(port)) {
        return val;
      }
      if (port >= 0) {
        return port;
      }
      return false;
    };
    
    const port = normalizePort(process.env.PORT || '3000');
    app.set('port', port);
    
    const errorHandler = error => {
      if (error.syscall !== 'listen') {
        throw error;
      }
      const address = server.address();
      const bind = typeof address === 'string' ? 'pipe ' + address : 'port: ' + port;
      switch (error.code) {
        case 'EACCES':
          console.error(bind + ' requires elevated privileges.');
          process.exit(1);
          break;
        case 'EADDRINUSE':
          console.error(bind + ' is already in use.');
          process.exit(1);
          break;
        default:
          throw error;
      }
    };
    
    const server = http.createServer(app);
    
    server.on('error', errorHandler);
    server.on('listening', () => {
      const address = server.address();
      const bind = typeof address === 'string' ? 'pipe ' + address : 'port ' + port;
      console.log('Listening on ' + bind);
    });
    
    server.listen(port);
    

    En vous remerciant d'avance pour le coup de main, j'ai cherché des heures et je trouve pas, je suis débutant en back.


    -
    Edité par Stef1117 17 septembre 2022 à 11:22:03

    • Partager sur Facebook
    • Partager sur Twitter
      24 octobre 2022 à 12:57:51

      Quelqu'un aurait une réponse? Car ce cours n'explique même pas l'erreur de refresh qu'on a dès le début, je débute sur node js, apparemment ce serait un problème avec angular, j'ai cherché longtemps mais rien trouvé.

      Franchement certains cours sont vraiment limites, quand on a des problèmes dès le début c'est pas normal

      • Partager sur Facebook
      • Partager sur Twitter
        3 novembre 2022 à 10:00:29

        J'ai le même problème, je m'arrache les cheveux dessus depuis hier.
        • Partager sur Facebook
        • Partager sur Twitter
          14 novembre 2022 à 20:00:42

          Moi aussi j'ai le même problème, je recherche mais je ne trouve pas de solution
          • Partager sur Facebook
          • Partager sur Twitter
            21 novembre 2022 à 18:49:18

            Salut, malgrès le problème de rechargement de page j'ai réussi à avancer, mais problème sur la partie 4 au 2ème cours.

            Le front dans le tuto est pas le même, dans le cours il a un boutton pour ajouter une image depuis notre dossier image, mais dans le front qu'on récupère avec le clone c'est une adresse à taper pour insérer une image.

            Une idée de comment résoudre ça? J'ai encore du mal avec node ,je sais pas trop comment je pourrais modifier ça.

            • Partager sur Facebook
            • Partager sur Twitter

            Cours passez au full stack avec Node.js, problème

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown