preloader

API con NodeJS

blog-image

¿Qué es NodeJS? 📦

Te permitira ejecutar aplicaciones con Javascript del lado del servidor.

NodeJS es una librería y entorno de ejecución de E/S. dirigida por eventos y por lo tanto asíncrona que se ejecuta sobre el intérprete de JavaScript creado por Google V8. En líneas generales podemos decir que NodeJS es un intérprete de Javascript que trabaja del lado del servidor.

NodeJS es una herramienta muy util para todo tipo de aplicaciones: aplicaciones web, aplicaciones en línea de comandos, scripts para administración de sistemas, todo tipo de aplicaciones de red, entre otros. El desarrollo es muy rápido y es muy flexible comparado con otros entornos.

Veamos un ejemplo de una implentación basica de un servidor con NodeJS:

const http = require('http')
const port = 1234

const requestHandler = (request, response) => {
    console.log(request.url)
    response.end('Hola NewInntech!')
}

const server = http.createServer(requestHandler)

server.listen(port, (err) => {
    if (err) return console.log('Error:', err)
    console.log(`Servidor iniciado en puerto ${port}`)
})

Notemos que:

requestHandler es una función que se invocará cada vez que una solicitud llegue al servidor. Si visita localhost:1234 desde su navegador, aparecerán dos mensajes de registro: uno para / y otro para favicon.ico

if (err) es para manejo de errores, si el puerto ya está ocupado o por cualquier otro motivo nuestro servidor no puede iniciarse, se nos notificará aquí.

http crea una aplicación web compleja, utilizando el fragmento anterior consume mucho tiempo. Esta es la razón por la que generalmente elegimos un marco para trabajar en nuestros proyectos. Hay muchos de los que puede elegir, pero estos son los más populares:

  • express
  • hapi
  • koa
  • restify

El mas utilizado a nivel mundial es el modulo express. Veamos el ejemplo anteior pero con express, primero debemos instalarlo:

$ npm install express --save

Una vez que tenga Express instalado, veamos cómo puede crear una aplicación similar a la anterior:

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

app.get('/', (request, response) => {
    response.send('Hola NewInntech desde Express!')
})

app.listen(port, (err) => {
    if (err) return console.log('Error:', err)
    console.log(`Servidor iniciado en puerto ${port}`)
});

La mayor diferencia que debe notar aquí es que Express por defecto ofrece un enrutador. No se tiene que comprobar manualmente la URL para decidir qué hacer, en su lugar, se define el enrutamiento de la aplicación con app.get, app.post, app.put, etc. Estos se convierten a la correspondiente verbos HTTP.