Crea una cuenta o inicia sesión

¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera

Routing con Express.js

4/27
Recursos

Aportes 75

Preguntas 6

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

¿Quieres compartir tu servidor con tu familia pero no lo pueden ver en sus celulares? 😕 😕

Traté de compartir esto como comentario pero era un poco largo xd, aquí dejo un mini turorial en platzi para que despliegues tu servidor en tu red LAN y puedas compartir tus hello worlds con tu familia 😄 😄 😄

Express ocupa el metodo get, para recibir las rutas en el servidor

Se puede responder con un mensaje

res.send('Contenido de respuesta');

O una respuestas en formato JSON

res.json({
    name: 'Producto 1',
    price: 1000
  });

Se recomienda instalar el plugin
JSON Viewer

req y res

req es un objeto que contiene información sobre la solicitud HTTP que provocó el evento. En respuesta areq, usa respara devolver la respuesta HTTP deseada.

el routing se se refiere a determinar cómo una aplicación responde a una solicitud de cliente a un punto final en particular) y un método de solicitud HTTP específico.

  • La definición de la ruta adopta la siguiente estructura:
app.METHOD(PATH, HANDLER)
  • app es una instancia de express.

  • METHOD es un método de solicitud HTTP, en minúsculas.

  • PATH es una ruta en el servidor.

  • HANDLER es la función ejecutada cuando la ruta coincide.

Para los que gustamos un poquito mas del estilo Dark, acá un pequeño aporte sobre JSON Viewer:

  1. Vamos a la configuración de la extension:
  2. En el select Theme tenemos una sección de estilos Dark a escoger:
  3. Por último, a disfrutar de su nuevo dark theme… 🤗🤗🤗

Checa la documentación de Express.js relacionada con Routing y así entender qué es. cómo funciona y cómo puedes usarlo para desarrollar tus apps

en firefox no es necesario instalar ningun tipo de plugin, se abre automaticamente, adjunto foto:

aunque si les molesta ver ese formato pueden bajarse esta extension: https://addons.mozilla.org/es/firefox/addon/jsonview/ para que se vea de la siguiente manera:

Amando este curso!! 😃

Yo uso Opera y funcion la misma extension que para Google Chrome

Les comparto esta explicación sobre express que me parecion interesante:

const express = require('express');

var app = express();

app.get('/', (req, res) => {
    res.send('Hello Express')
});

app.listen(process.env.PORT || 3000)

Linea 1: Importas express con require

Linea 2: Inicializamos el app express en la variable app

Linea 3: .get decidira que cuando obtiene esa ruta en especifico ´´./´´ debe dar la respuesta que se especifica en la funcion. Esta toa dos argumentos 1: la URL y 2: a función que le dice a express qué enviar a la persona que hace la solicitud ´´hello express´´.

Linea 4: .listen vinculará la aplicación al puerto de nuestra máquina.

Así me gustan los videos, al grano sobre el tema y cortos.

Aspectos básicos del routing en Express.js

La definición de ruta tiene la siguiente estructura:
app.METHOD(PATH, HANDLER)
Donde:

  • app es una instancia de express.
  • METHOD es un método HTTP, en minúsculas.
  • PATH es una ruta en el servidor.
  • HANDLER es la función que se ejecuta cuando la ruta coincide.

Con Brave también funciona la extensión:

Yo uso firefox developer edition y me formatea el json en automatico.

Solicitudes REST con Curl

Conocido como “Cliente URL” es una utilería para hacer solicitudes y tranferir información.

.
Ejemplo, tenemos que:

curl localhost:3000

Salida

Hola a mi server de express
Para compartir en remoto y mostrárselo a alguien más o para trabajar en equipo sin haber desplegado aún. Recuerde que ahora VS Code trae una característica donde puedes abrir el puerto de tu app y te genera un enlace público con un túnel de VS Code: 1. Presionamos ***Ctrl + J*** para abrir el panel de terminales. 2. Seleccionamos la pestaña de "Puertos" 3. Escribimos el puerto en el que corre nuestra app 4. Nos genera un enlace y podemos compartirlo con alguien ![](https://static.platzi.com/media/user_upload/image-bdf3f77a-f8c6-473b-9c6b-d9e4d5cfe83f.jpg)
Buenas, particularmente yo prefiero no usar el navegador y la extensión, prefiero usar Postman

Para los que usamos Firefox

Podemos enviar páginas en el JSON:

app.get('/home', (req, res) => {
  res.json({
    home: 'home page',
    index: '/'
  })
})

JSON (JavaScript Object Notation)

Es el formato de texto sencillo con el que se comunican el cliente y el servidor mediante el protocolo HTTP y el estándar de construcción de APIS: REST no SOAP.

🤗 Espero le sirva el aporte 🤗

Te amo Firefox, no tuve que descargar nada porque me entiendes.

Yo uso desde hace tiempo la extensión JSON Viewer, es una total maravilla cuando estas trabajando desde el front y quieres ver si la ruta que utilizaste funciona bien y que datos vienen

Buenas noches. dejo incluido el mismo ejercicio pero con typescript. https://github.com/bdavidegonzalez/my-store

Pueden usar firefox dev edition para mi es el mejor y no hay que descargar extensiones para visualizar JSON, directamente te los muestra como cuando inspeccionas código y tiene un filtro para JSON

Excelente extension! No la conocia, mil gracias!

Se ve genial con esta extensión!!

Link para instalar JSON Viewer

Para quienes usan opera, les recomiendo esta extensión

https://addons.opera.com/es-419/extensions/details/json-lite/

Así está el index.js, puerto era el 9123 y funciona sin problema, por estandarizarme en el curso lo cambie a 3456, funciona también

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

app.get('/', (req, res)=>{
  res.send("Mi tienda en express");
});

app.get('/otraRuta', (req, res)=>{
  res.send("Mi otra tienda en express");
});

app.get('/:id', (req, res)=>{
  res.send(`Mi tienda en express (ruta es = a endpoint) número ${req.params.id}`);
});

app.get('/json/:id', (req, res)=>{
  res.json({
    id:req.params.id,
    producto: req.params,
    precio:1
  });
});


app.listen(port, ()=>{
  console.log(`Mi tienda en el puerto ${port}`);
});
Intentando mejorar la legibilidad del código, estoy estructurando mis rutas de la siguiente manera: ```js /* Ruta Products */ const rutaProducts= '/products' const CallbackProducts = (request, response)=>{ response.json({ name:"DRON", price:900 }) } app.get(rutaProducts, CallbackProducts) ```
![](https://static.platzi.com/media/user_upload/image-25718882-ecd2-46da-a366-7be2d8302673.jpg) Ahí esta mi reto 🤗
![](https://static.platzi.com/media/user_upload/image-8f12c39d-c345-4cb7-926a-e51c82edd6a0.jpg) Ya me salió :D
La verdad escribí tremendo manuscrito, pero le di a la opción de enlace y me borro 1 hora de trabajo, lo único que no se perdió fue el prólogo en que me apoye en ChatGPT para dar una breve y entretenida info a cerca de node :/ ¡Disfrútenla viajeros! En los albores del siglo XXI, cuando las vastas redes de información ya habían tejido su telaraña alrededor del globo, emergió un nuevo poder en el reino de la programación. Este nuevo entorno, conocido como Node.js, fue forjado por el visionario Ryan Dahl en el año 2009. Inspirado por el deseo de expandir las capacidades de JavaScript, el lenguaje que dominaba los confines de los navegadores web, Dahl buscó llevarlo más allá, a las profundidades y vastedades de los servidores y sistemas operativos. Node.js nació del motor V8 de Google, un corazón pulsante capaz de ejecutar JavaScript a velocidades antes inimaginables. Este nuevo reino se caracterizaba por su naturaleza asincrónica y no bloqueante, donde el bucle de eventos y las promesas tejían una danza de operaciones eficientes y multitarea, permitiendo a las aplicaciones realizar múltiples tareas simultáneamente sin caer en el letargo de los procesos bloqueantes. Con el nacimiento de npm, el gran repositorio de módulos, Node.js no solo se fortaleció, sino que también creó un vasto mercado de herramientas y librerías. Este mercado se convirtió en el caldo de cultivo para que desarrolladores de todos los confines del mundo pudieran compartir sus creaciones y soluciones, fortaleciendo así el ecosistema de Node.js. Así, Node.js se estableció no solo como un entorno de ejecución, sino como una piedra angular en la construcción del moderno desarrollo web y de aplicaciones. Desde pequeñas aplicaciones personales hasta grandes sistemas distribuidos, Node.js ha continuado expandiendo su imperio, llevando la versátil y omnipresente lengua de JavaScript a cada rincón del reino digital. Este prólogo busca honrar esos inicios y reconocer el papel de Node.js como un puente entre mundos, una herramienta de poder inmenso que ha transformado la forma en que construimos y operamos en el vasto reino de la tecnología.
const express = require("express");
const app = express();
const port = 3000;

app.get("/", (req, res) =>{
  res.send("Hola mi server en Express");
});

app.get('/nueva-ruta', (req, res) => {
  res.send('Hola, soy la nueva ruta');
});

app.get('/products', (req, res) => {
  res.json({
    name: 'Product 1',
    price: 1000
  })
})

app.listen(port, () =>{
  console.log("My port: " + port);
});

const express = require(‘express’);
const app = express();

const port = 3001;

app.get(’/’, (req, res) => {
res.send(‘mi server en express’);
})
app.get(’/nueva-ruta’, (req, res) => {
res.send(‘nueva ruta’);
})
app.get(’/productos’, (req, res) => {
res.json({
name: ‘productos1’,
price: “1000”
});
})

app.listen(port, () => {
console.log('listening on port ’ + port);
});

😍

Mi respuesta de categorías con un Json que tiene dos propiedades, el nombre de la categoría y un array de productos.

{
  "name": "Categorie 1",
  "products": [
    {
      "name": "Product 1 ",
      "price": 1000,
      "quatity": 10
    }
  ]
}

Tanto Firefox como Edge tienen soporte para JSON… prefiero el de Firefox, pero esto es lo que muestra Edge:

Yo solo saque la ip de mi equipo con el comando “ipconfig” (en Windows) desde una terminal, después solo abrí un navegador en mi celular y sustituí el localhost por la ip
eje. 192.168.100.111:3000
Saludos

Conciso y al grano, como debe ser, sin ahondar en ejemplos rebuscados que solo confunden y estresan al estudiante. El mejor profesor que vi en Platzi hasta ahora!

Este es mi nuevo aporte probando con el formato de texto y el formato de json, que me parece ideal en el sentido de que se generen secciones según la información que queremos consultar.

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

app.get('/', (req, res) => {
    res.send('hola mi server en express');

});

app.get('/nueva-ruta', (req, res) => {
    res.send('Hola, soy una nueva ruta');

});

app.get('/productos', (req, res) => {
    res.json( {
        name: 'Vestido tipico', 
        price: 1000
    });

});

app.get('/categorias', (req, res) => {
    res.json([{
            name: 'Polleras',
        },
        {
            name:'Camisas'
        },
        {
            name: 'Pecheras'
        }
]);

});

app.listen(port, () => {
    console.log('Mi port ' + port)
})

Test route

app.get('/products', (req,res) => {
  res.json({
    "ok":"true",
    "works":true
  })
})

En Chrome si se puede ver automaticamnete

Routing con Express

añadimos dos nuevas rutas a la app
.
.
una ‘/items’ tendrá respuesta de parte del servidor en texto

res.send('...')
app.get('/items', (req,res)=> {
    res.send('hello items')
})

la otra ‘/products’ tendrá respuesta de parte del servidor en JSON

res.json({...})
app.get('/products', (req,res)=> {
    res.json({
        name: "products-1",
        price: 3000
    })
})

el código completo quedaría de esta forma
index.js:

const express = require('express')
const app = express()
const port = 3000

app.get('/', (req,res)=> {
    res.send('hello home')
})

app.get('/items', (req,res)=> { 
    res.send('hello items')
}) 

app.get('/products', (req,res)=> { 
    res.json({
        name: "products-1",
        price: 3000
    })
}) 

app.listen(port, ()=> {
    console.log(`Listening on port ${port}`)
})

podemos visualizar mejor las respuestas del servidor en formato JSON instalando una extensión de Chrome llamada JSON Viewer

Por lo visto en Firefox no es necesario descargar ninguna extensión, je je. El mismo navegador directamente reconoce cuando la respuesta es un JSON y lo muestra como tal ✨.

// Importando express
const express = require('express');
// Inicializando la aplicacion
const app = express();
// Variable del puerto
const port = 3000;

// Routing
app.get('/', (req, res) => {
  res.send('Hola mi server en express');
});

app.get('/productos', (req, res) => {
  res.json({
    producto1: 'Ordenador',
    price: 1233,
  });
});

app.get('/nueva-ruta', (req, res) => {
  res.send('Hola soy una nueva ruta')
});

// Escuchando al puerto
app.listen(port, () => {
  console.log('Esta corriendo en el puerto' + port);
});
const express = require('express');
const app = express();
const port = 3000;

app.get('/', (req, res) => {
  res.send('Hola, bienvenido a mi servidor con Express');
});

app.get('/nueva-ruta', (req, res) => {
  res.send('Hola, soy una nueva ruta');
});

//Podemos enviar un JSON
app.get('/productos', (req, res) => {
  res.json([{
    name: 'Producto 1',
    price: 1000
  },
  {
    name: 'Producto 2',
    price: 500
  },
  {
    name: 'Producto 3',
    price: 800
  }]);
});

app.listen(port, () => {
  console.log('Mi puerto ' + port);
});

La extension se llama: JSON viewer

const express = require('express')

const app = express();
const PORT = 3000

app.get('/', (req, res)=>{
  res.send('hola este es mi primer servidor con express')
});

app.get('/nueva-ruta', (req, res)=>{
  res.send('hola, esta es una nueva ruta o end-point')
});

app.get('/products', (req, res)=>{
  res.json(
    {
      name: "Producto1",
      price: 100
    }
  )
});

app.listen(PORT,()=>{
  console.log(`Server on port ${PORT}`)
});

Sobre la extensión de JSON Viewer en Chrome.
Pueden la extensión desde el navegador y agregarle estilos predeterminado y modificar muchos más elementos sobre como se prensenta el JSON.

Json = Diccionario en Python 🤝

Una alternativa es https://jsonviewer.stack.hu/

res.json() tambien puede recibir objetos como parametros

app.get('/products', (req, res) =>{
    const data = [
        {
            "id":"1",
            "name":"Guitar",
            "price":"2500"
        },
        {
            "id":"2",
            "name":"Microphone",
            "price":"500"
        }
    ]
    res.json(data)
})

Esto sirve si por ejemplo queremos leer un archivo json que tengamos y que llamemos con require

Una alternativa a la extencion de chrome para visualizar el formato json de una mejor manera es agregar la siguiente linea a su codigo

// config
 app.set('json spaces', 2)

Ahora entiendo lo de las rutas!!

Se recomienda tener las rutas en un archivo aparte esto para poder tener dividido el código en piezas pequeñas y ser mas fácil su manejo a futuro

En platzi no tienen un curso donde expliquen exactamente que es un JSON. Para quienes tengan está duda le recomiendo este curso de YouTube, está muy sencillo https://youtu.be/lLsYjzpSDyA

Así quedaron:

Este curso esta muy bueno 😃 estoy aprendiendo mucho

Go!!!

Muy buena esa extension, ayuda a ver mejor la informacion

En Firefox no hace falta instalar una extension para ver los JSON, tiene un visor integrado bastante bueno.

Perfeca clase, yo intente manda mi response en formmato JSON mandando una llista de objetos, pero no mostraba nada 😦 asi que lo pase a formato send:

// practicando una nueva ruta
app.get('/categories', (req, res) => {
  res.json({
    name: 'On sale',
    type: 'clothes'
  });
});

Aca dejo mi aporte

Agregue la ruta user

Me encanta como vamos en este curso, el profesor explica todo a detalle y se entiende muy bien.