ExpressJS - Mejores prácticas

A diferencia de Django y Rails, que tienen una forma definida de hacer las cosas, estructura de archivos, etc., Express no sigue una forma definida. Esto significa que puede estructurar la aplicación a su gusto. Pero a medida que su aplicación crece en tamaño, es muy difícil mantenerla si no tiene una estructura bien definida. En este capítulo, veremos las estructuras de directorios que se utilizan generalmente y la separación de preocupaciones para construir nuestras aplicaciones.

Primero, discutiremos las mejores prácticas para crear aplicaciones Express y de nodo.

  • Siempre comience un proyecto de nodo usando npm init.

  • Instale siempre las dependencias con un --save o --save-dev. Esto asegurará que si se muda a una plataforma diferente, puede ejecutar npm install para instalar todas las dependencias.

  • Quédese con los nombres de archivo en minúsculas y las variables camelCase. Si observa cualquier módulo npm, se nombra en minúsculas y se separa con guiones. Siempre que necesite estos módulos, use camelCase.

  • No envíe node_modules a sus repositorios. En su lugar, npm instala todo en las máquinas de desarrollo.

  • Utilizar una config archivo para almacenar variables

  • Agrupe y aísle rutas en su propio archivo. Por ejemplo, tome las operaciones CRUD en el ejemplo de películas que vimos en la página de la API REST.

Estructura de directorios

Analicemos ahora la estructura de directorios de Express.

Sitios web

Express no tiene una estructura definida por la comunidad para crear aplicaciones. La siguiente es una estructura de proyecto más utilizada para un sitio web.

test-project/
   node_modules/
   config/
      db.js                //Database connection and configuration
      credentials.js       //Passwords/API keys for external services used by your app
      config.js            //Other environment variables
   models/                 //For mongoose schemas
      users.js
      things.js
   routes/                 //All routes for different entities in different files 
      users.js
      things.js
   views/
      index.pug
      404.pug
        ...
   public/                 //All static content being served
      images/
      css/
      javascript/
   app.js
   routes.js               //Require all routes in this and then require this file in 
   app.js 
   package.json

También existen otros enfoques para crear sitios web con Express. Puede crear un sitio web utilizando el patrón de diseño MVC. Para obtener más información, puede visitar los siguientes enlaces.

https://code.tutsplus.com/tutorials/build-a-complete-mvc-website-with-expressjs--net-34168

y,

https://www.terlici.com/2014/08/25/best-practices-express-structure.html.

API RESTful

Las API son más sencillas de diseñar; no necesitan un directorio público o de vistas. Utilice la siguiente estructura para crear API:

test-project/
   node_modules/
   config/
      db.js                //Database connection and configuration
      credentials.js       //Passwords/API keys for external services used by your app
   models/                 //For mongoose schemas
      users.js
      things.js
   routes/                 //All routes for different entities in different files 
      users.js
      things.js
   app.js
   routes.js               //Require all routes in this and then require this file in 
   app.js 
   package.json

También puede utilizar un generador de yeoman para obtener una estructura similar.