Node.js Tu primer servidor – Parte 3

Node.js a diferencia de otro tipo de tecnologías web, no usa Apache cómo servidor, sino que se crea su propio servidor.

El módulo http

Para crear un servidor necesitamos el modulo http o https

Un ejemplo sencillo de servidor http en el puerto 3000 puede ser:

// content of index.js
const http = require('http')  
const port = 3000

const requestHandler = (request, response) => {  
  console.log(request.url)
  response.end('Hello Node.js Server!')
}

const server = http.createServer(requestHandler)

server.listen(port, (err) => {  
  if (err) {
    return console.log('something bad happened', err)
  }

  console.log(`server is listening on ${port}`)
})

Para iniciar el servidor:

$ node index.js

Notas importantes:

  • requestHandler: esta función será invocada en cada consulta al servidor. Si visita localhost:3000 desde el navegador, podrá observas en el log, dos peticiones, una para / y tora para el favicon.ico
  • if (err): en caso de algún error (el puerto está ocupado u otra razón por la cual no se pude iniciar el servidor)

Librería express

Es un framework rápido y minimalista para Node.js

Para instalar la librería en nuestro proyecto:

$ npm install express --save

Una vez se haya instalado, podrá crear una aplicación similar a esta:

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

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

app.listen(port, (err) => {  
  if (err) {
    return console.log('algo ha ido mal', err)
  }

  console.log('Servidor a la escucha en ${port}')
})

 

Ladiferencia más grande que puedes observar en que explress en por defecto un enrutador. No tendrá que definir manualmente las url y que hacer, sino que sólo tendrá que definir el enrutamiento mediante app.get, app.post, app.put, etc.

Manejo de errores en Express

Cómo en todos los frameworks, el manejo de errores es crucial, así que express tiene una función intemediaria con cuatro parámetros que permite manjar esto.

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

app.get('/', (request, response) => {  
  throw new Error('oops')
})

app.use((err, request, response, next) => {  
  // muestra el error en console.log
  console.log(err)
  response.status(500).send('Algo se rompió!')
})

Cosas importantes:

  • La función de tratamiento de errores, debería ser una función añadida con app.use
  • El manejador de errores tiene un callback next, para poder manejar múltiples manejadores.

Seguir leyendo:

Node.js uso de Base de datos – Parte 4

carlospf

Ingeniero Técnico en Informática de Sistemas, especializado en desarrollo de soluciones software y comercio electrónico. Director técnico y cofundador de CoverManager, software de gestión de reservas en restaurantes de alta ocupación.

También te podría gustar...

Deja un comentario