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.