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:
1 respuesta
[…] Node.js Tu primer servidor – Parte 3 […]