Skip to main content

Command Palette

Search for a command to run...

Servidor node.js basado en clases

Updated
3 min read
Servidor node.js basado en clases

Has notado que cuando escribes el código de tu servidor Node (express) y este comienza a crecer, el archivo principal (por lo general index.js) crece bastante y es muy difícil poder comprender donde está ubicado el código por secciones (pese a que se pongan muchos comentarios).

El ejemplo completo esta al final.

Aquí un pequeño ejemplo:

image.png

Una buena forma para solventar esto seria poder tener un servidor basado en una clase, la cual permita tener un código más legible y de paso aprovechar y reutilizar este servidor en próximos proyectos, ya que nos brinda una estructura para construirlo.

Teniendo esto en mente vamos entonces a modificar nuestro servidor

Crearemos un nuevo archivo el cual llamaremos “server.js” y dentro vamos a crear una clase:

image.png

Vamos ahora a configurar entonces “express” dentro de nuestra clase (también configuramos el puerto):

image.png

Ahora bien, recordemos que todo lo que está dentro del método constructor de nuestra clase, se va a ejecutar cuando se cree una instancia de la clase. Esto es importante debido a que podemos aprovechar este comportamiento para crear ciertos métodos los cuales se ejecuten una vez la instancia del servidor fue creada.

Creemos ahora algunos métodos

image.png

Vemos como de una forma descriptiva el método encapsula la lógica de que hará el código que podremos dentro.

Los métodos:

  • routes

  • getConnection

  • middlewares

Vamos a ejecutarlos al instanciar la clase, pero el método listen es quien nos va a permitir decidir desde cuando nuestro servidor puede empezar a escuchar. Veámoslo. Primero hagamos que estos métodos se ejecuten dentro del método constructor:

image.png

ahora modifiquemos nuestro metodo listen

image.png

Vemos que la configuración es prácticamente igual ya que seguimos usando express, pero ahora haciendo uso de “this“.

De esta manera entonces podemos ir creando nuestro servidor de una manera más ordena separando nuestro servidor en bloques de codigos.

Creemos ahora una instancia de nuestro servidor y veamos otro detalle importante. Dentro de nuestro archivo “index.js” vamos a requerir nuestra clase server y vamos a crear una instancia de la clase la cual llamaremos app, luego con app podemos ejecutar el método listen e indicarle a nuestro servidor que ya puede empezar a escuchar por el puerto que hemos definido

image.png

Ahora bien, si nos fijamos en nuestro archivo “server.js” hemos hecho uso de “process.env” para requerir el puerto pues para poder acceder a las variables de entorno con nuestra implementación de servidor vamos a configurar aquí en el archivo “index.js” el módulo correspondiente para ello.

image.png

Tenemos entonces ahora un servidor que nos provee una estructura más clara y fácil de seguir a la hora de estructurar nuestro servidor.

Node Server Gist

Espero este ejemplo haya sido de ayuda.