Enrutamiento en Node.js

¿Qué es el enrutamiento?
El enrutamiento define la forma en que los puntos finales de la aplicación manejan las requests de los clientes.

Implementación de enrutamiento en Node.js: hay dos formas de implementar enrutamiento en node.js que se enumeran a continuación:

  • Mediante el uso de marco
  • Sin usar Framework

Uso de Framework: Node tiene muchos frameworks para ayudarlo a poner en funcionamiento su servidor. El más popular es Express.js.
Enrutamiento con Express en Node: Express.js tiene un objeto de «aplicación» correspondiente a HTTP. Definimos las rutas usando los métodos de este objeto «aplicación». Este objeto de aplicación especifica una función de devolución de llamada, que se llama cuando se recibe una solicitud. Tenemos diferentes métodos en el objeto de la aplicación para un tipo diferente de solicitud.

  • Para la solicitud GET, use el método app.get():
    var express = require('express')
    var app = express()
    
    app.get('/', function(req, res) {
        res.send('Hello Sir')
    })
    
  • Para la solicitud POST, use el método app.post():
    var express = require('express')
    var app = express()
    
    app.post('/', function(req, res) {
        res.send('Hello Sir')
    })
    
  • Para manejar todos los métodos HTTP (es decir, GET, POST, PUT, DELETE, etc.) use el método app.all():
    var express = require('express')
    var app = express()
    
    app.all('/', function(req, res) {
        console.log('Hello Sir')
        next()   // Pass the control to the next handler
    })
    

El next() se usa para transferir el control a la próxima devolución de llamada. A veces usamos app.use() para especificar la función de middleware como devolución de llamada.

Entonces, para realizar el enrutamiento con Express.js, solo tiene que cargar el expreso y luego usar el objeto de la aplicación para manejar las devoluciones de llamada de acuerdo con el requisito.

Enrutamiento sin marco: usar los marcos es bueno para ahorrar tiempo, pero a veces esto puede no ser adecuado para la situación. Por lo tanto, un desarrollador puede necesitar construir su propio servidor sin otras dependencias.
Ahora cree un archivo con cualquier nombre usando la extensión .js y siga los pasos para realizar el enrutamiento desde cero:

  • Aquí usaremos el módulo integrado de node.js, es decir, http. Entonces, primero cargue http:
    var http = require('http');
  • Ahora cree el servidor agregando las siguientes líneas de código:
    http.createServer(function (req, res) {
        res.write('Hello World!'); // Write a response
        res.end(); // End the response
    }).listen(3000, function() {
        console.log("server start at port 3000"); // The server object listens on port 3000
    });
  • Ahora agregue las siguientes líneas de código en la función anterior para realizar el enrutamiento:
    var url = req.url;
    if(url ==='/about') {
        res.write(' Welcome to about us page'); 
        res.end(); 
     } else if(url ==='/contact') {
        res.write(' Welcome to contact us page'); 
        res.end(); 
     } else {
        res.write('Hello World!'); 
        res.end(); 
     }
    

Ejemplo: El código completo de enrutamiento combinando el código anterior.

var http = require('http');
  
// Create a server object
http.createServer(function (req, res) {
      
    // http header
    res.writeHead(200, {'Content-Type': 'text/html'}); 
      
    var url = req.url;
      
    if(url ==='/about') {
        res.write(' Welcome to about us page'); 
        res.end(); 
    }
    else if(url ==='/contact') {
        res.write(' Welcome to contact us page'); 
        res.end(); 
    }
    else {
        res.write('Hello World!'); 
        res.end(); 
    }
}).listen(3000, function() {
      
    // The server object listens on port 3000
    console.log("server start at port 3000");
});

Producción:

Publicación traducida automáticamente

Artículo escrito por shubhamsh2820 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *