Copiar enlace

Una vez hayas estudiado las bases de Nodejs, lo siguiente es aprender un Framework de Node para poder crear aplicaciones backend reales. Y aunque podria parecer esto como opcional, en la practica no lo es tanto, ya que la mayoria de proyectos en producción, usan algun tipo de framework de algun modo, ya sea creado desde cero o por la comunidad.

Asi que en este articulo te mostraré una lista de las Frameworks más utilizados de Nodejs y que actualmente vale la pena invertirle tiempo si lo tuyo es usar a Javascript o Typescript en el backend.

La lista que te voy a mencionar es la siguiente:

Asi que empecemos con Express.

Express

Desde el inicio de Nodejs, uno de los frameworks que más se popularizó fue Express, este es un framework minimalista, lo que quiere decir que es un pequeño paquete (npm install express) que instalas y puedes extenderlo con otros modulos, a partir de alli.

Tambien significa que en la practica debes crear tu propia estructura de Proyectos (MVC), debes añadir tus propios modulos de base de datos (SQL clients, ORMs) y basicamente elaborar muchas de tus funcionalidades desde cero.

Y aunque esto suene mal, el empezar con este framework es bastante fácil, de hecho con este código ya tendrias un servidor web:

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

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

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

Esto hace que sea tambien bastante utilizado en entornos serverless (Serverless Functions), y muchas bibliotecas del ecosistemas de Javascript para el backend (GraphQL, Mongodb, Redis, etc) lo usen siempre como su primera opcion para documentaciones.

Ademas que aprender sus concepto basicos como Routing, Middlewares, y el manejo de errores, asi como la comunicacion con bases de datos, te puede dar una buena base para entender frameworks más complejos, ya que alguno otros que te voy a mencionar tambien estan basados en este.

Fastify

Si bien express es uno de los frameworks más importantes de Nodejs, este no ha recibido muchas actualizaciones durante años, y a pesar que actualmente ya esta en desarrollo su nueva version 5, el rendimiento y caracteristias de Express no ha mejorado mucho.

Es por esto que tenemos frameworks alternativos como Fastify, que es muy similar a Express en el sentido que es un modulo pequeño, solo que este tiene actualizaciones más constantes, una comunidad más activa, y el framework tambien es uno de los más rapidos del ecosistema de Nodejs.

Ademas el framework ya posee funcionalidaes incluidas como validaciones de rutas basadas en Esquemas

como este ejemplo:

fastify.addSchevma({
  $id: 'http://example.com/',
  type: 'object',
  properties: {
    hello: { type: 'string' }
  }
})

fastify.post('/', {
  handler () {},
  schema: {
    body: {
      type: 'array',
      items: { $ref: 'http://example.com#/properties/hello' }
    }
  }
})

Soporta Typescript por defecto, permite integrar regitros (Logging) con Pino, ademas de poder extenderse con más plugins.

Este framework es de las pocas alternativas a Express actualmente que estan al mismo nivel, aunque es recomendable usarlo si ya se conoce el ecosistema de Nodejs, porque a diferencia de express no hay tantos ejemplos y puede ser un poco más complicado encontrar documentaciones que lo usen principalmente. Aun asi es de las mejores opciones actualmente.

Nestjs

Nestjs es practicamente lo que Spring es para el lenguaje Java, es decir en este framework puedes crear aplicaciones backend completas con un diseño modular y una herramienta de consola que genera código (CLI). Este framework esta desarrollado en Typescript y permite utilizar los paquetes más populares del ecosistema de Nodejs, como Apollo para soportar GraphQL, Handlebars para ofrecer un motor de plantillas, class-validator para validaciones o jsonwebtokens y passport para autenticación, Jest para Testing, ademas de integrarse facilmente con ORMs como Mongoose, Prisma, Sequelize, entre otros.

De hecho este Framework esta desarrollado encima de Express, aunque tambien puede funcionar con Fastify en su lugar, si asi se prefiere.

Ademas puede ser utilizado tambien con arquitectura de microservicos, y su CLI permite generar porciones de código con comandos sencillos, lo que lo vuelve una de las opciones más robustas en el mundo de Nodejs para proyectos de Producción, que puede estar conformado por distintos desarrolladores.

Este Frameework toma inspiracion de el Framework de Frontend Angular, aunque no es necesario saber angular para dominarlo, sino que hace uso de la forma en la que organiza sus archivos, genera clases e inyecta dependencias.

Aprenderlo puede tomar algo más de tiempo, pero puede ser una herramienta muy productiva para Desarrolladores Backend.

Adonisjs

Si en el mundo de PHP existe un framework como Laravel que tiene muchas de las tareas más comunes abarcadas, en Nodejs esta Adonisjs, el cual esta inspirado en este.

Este Framework a diferencia de Nestjs no esta basado en express, sino que esta desarrollado desde cero. Ya proporciona una forma de estructurar archivos, posee bibliotecas integradas para validar datos de usuario, ademas de un ORM llamado Lucid que permite integrarse con bases de datos como MySQL, Mariadb, o PostgreSQL.

Ademas soporta modulo de seguridad que consideran los fallos de seguridad más comunes como XSS (Cross Site Scripting), y modulos para hacer Testing, y autenticar usuarios.

Tambien esta desarrollado en Typescript, por lo que seria una alternativa a Nestjs.

Y La documentación de este framework esta muy trabajada por lo que si quieres empezar con el y ya has usado otro framework conocerlo no es muy complicado.

Otra Lista de frameworks de Nodejs

Ahora esto no son los unicos frameworks de Nodejs, de hecho esta es otra lista adicional de frameworks de Nodejs.

  • Koajs
  • Sailjs
  • LoopBack
  • FeathersJS
  • Derbyjs
  • Restify
  • [Hapijs]

Pero la razon de porque los coloco por aparte es que si bien estos frameworks funcionan, muchos de estos estan no recibiendo actualizaciones constantes, lo que signfica que puede ser una molestia para el desarrollador encontrarse con problemas de modulos desactualizados, o errores que nadie ha solucionado en mucho tiempo. Asi que aunque puedes escogerlos quizas por su idea basica de diseño, en lo personal no los recomiendo.

Conclusión

En fin escoger un framework es una parte importante, pero si me pregunta a mi, te diria que vayas por express primero, al haber mucha información es facil entenderlo y empezar a usarlo. Aprenderlos te dara bases solidas en el backend, luego si quieres algo mas rapido podrias ir por fastify o directamente saltar a frameworks como Nestjs. Adonis tambien es una opcion robusta sin embargo como esta un poco alejado de los paquetes comunes del ecosistema de Javascript, es dificil considerarlo como una opcion para iniciantes, sino para desarrolladores un poco mas experimentados en Javascript.

En fin al final depende en que punto de tus estudios te encuentres.

Actualizaciones

Más Recursos

Actualizado por ultima vez el

En este video se mencionará algunos frameworks backend de Nodejs de creación de aplicaciones de Servidor basadas en HTTP.

¿Quieres Compatir mi Contenido?

Publicado:hace 5 años

Actualizado:hace 2 años