En este posteo vamos a ver cómo crear un servidor básico en NodeJS usando Express, una librería que nos facilitará mucho el proceso de desarrollo.
Qué es ExpressJS?
En pocas palabras ExpressJS es una framework que nos ayuda con el desarrollo de aplicaciones usando NodeJS. Fue creado como un framework con capacidades mínimas al cual se le puede agregar mas funcionalidades mediante pluggins.
Creando un servidor local:
Lo primero que necesitamos hacer es inicializar el proyecto con el comando npm init
e instalar express con npm install express
. Una vez hecho esto neceistamos crear una archivo JS (que llamaremos index.js) con el siguiente código:
const express = require('express');
const app = express();
app.listen(3000, () => {
console.log("El servidor se está ejecutando en el puerto 3000");
});
Con este código estamos creando la aplicación y asignándole el puerto 3000 como su punto de acceso. Para ejecutarlo debemos usar el comando node index.js
, y una vez esté levantado veremos el menssaje que tenemos dentro del arrow function en la consola.
Respondiendo requests:
Luego de esto podremos responder a los requests creando un endpoint de la siguiente forma:
app.get('/', (request, response) => {
response.send('Hello World')
})
const path = require('path');
app.get('/verHTML', (request, response) => {
response.sendFile(path.join(__dirname, '/index.html'));
})
Recibiendo información:
Por parámetro:
Supongamos que queremos obtener el valor de un parámetro en la URL, por ejemplo 'nombre'. Nos alcanza con agregar esta línea const nombre = request.params.query.nombre;
a la función de manera que nos quede lo siguiente:
app.get('/obtenerParametro', (request, response) => {
const nombre = request.params.query.nombre;
response.send(nombre);
})
Ya con esto tenemos acceso a los parámetros de la URL, sin necesidad de cambiar el path de la función.
Por body:
Para poder obtener la información en el body de un request debemos hacer que nuestra aplicación use un parser del tipo de dato que esperamos recibir, por ejemplo JSON, para eso agregamos la siguiente línea de código:
app.use(bodyParser.json());
Luego podremos crear un endpoint como hicimos anteriormente y obtener el body con toda la información mediante el parámetro request:
app.post("/body", (request, response) => {
const body = request.body;
response.send(body);
})