Maison  >  Questions et réponses  >  le corps du texte

next ne fonctionne pas correctement dans le middleware utilisant Nodejs

Je travaille avec Nodejs et j'utilise expressjs et maintenant je travaille sur la fonctionnalité middleware et je veux savoir quel est le « prochain » travail dans le concept middleware ? « Suivant vers le prochain middleware », mais qu'est-ce que le « prochain middleware » ? J'ai essayé d'utiliser le code suivant et chaque fois que je clique sur "http://localhost:3000/", il affiche "Middleware 1 et Middleware 2" dans la console et le navigateur. "hello world" est toujours affiché, donc "prochain middleware" signifie toujours "gestionnaire de routeur" (méthode get) ?

const express = require('express');
const app = express();

// Middleware function 1
app.use((req, res, next) => {
  console.log('Middleware 1');
  next(); // Move to the next middleware
});

// Middleware function 2
app.use((req, res, next) => {
  console.log('Middleware 2');
  next(); // Move to the next middleware
});


// Route handler
app.get('/', (req, res) => {
  res.send('Hello, world!');
});

app.listen(3000, () => {
  console.log('Server started on port 3000');
});

P粉076987386P粉076987386178 Il y a quelques jours350

répondre à tous(1)je répondrai

  • P粉327903045

    P粉3279030452024-04-05 16:56:37

    C'est faux. Le middleware suivant ne signifie pas toujours « gestionnaire de routeur ». La fonction Next() redirige vers une autre fonction.

    Par exemple, l'exemple suivant,

    // Middleware function 1
    app.use((req, res, next) => {
      console.log("Middleware 1");
      next(); // Move to the next middleware
    });
    
    // Route handler
    app.get("/", (req, res, next) => {
      console.log("GET /");
      next();
    });
    
    // Middleware function 2
    app.use((req, res) => {
      console.log("Middleware 2");
      res.send("Hello, world!");
    });

    Sortie console :

    La réponse dans le navigateur est Hello, world!. Par conséquent, la fonction next() n’est pas toujours conçue comme un gestionnaire de routeur.

    répondre
    0
  • Annulerrépondre