Aprende Sails.js - Conociendo su estructura

Aprende Sails.js - Conociendo su estructura
Photo by Harry Dona / Unsplash

Hola de nuevo.

Ahora les presentaré la estructura de éste framework que cada vez que lo uso no me deja de sorprender con nuevas cosas.

Después de saber cómo instalar sails en nuestro equipo a continuación detallaré los archivos y carpetas que tiene un nuevo proyecto.

app.js

Cada vez que lanzamos un proyecto de sails a ejecución, el archivo app.js es el que inicia. Éste archivo no lo podemos modificar de momento, salvo que sólo como desarrollador avanzado lo podríamos cambiar a futuro.

Gruntfile.js

Sails usa grunt para automatizar muchas tareas como es minificar archivos estáticos javascripts y hojas de estilos, etc. Aquí se almacenan todas las tareas que iniciarán ese proceso.

.sailsrc

Éste archivo sirve para guardar algunas configuraciones de comportamiento del framework para nuestro proyecto.

carpeta api.

Ésta carpeta tiene a su vez otras cinco carpetas más.

  • controllers
  • models
  • policies
  • responses
  • services

A como cualquier otro framework mvc, Sails tiene una carpeta controllers y una models. Los archivos deben tener un mismo nombre para que Sails los reconozca que pertenece uno del otro.
Ej. Controlador UsuarioController.js y modelo Usuario.js.

La carpeta policies es para asegurar tu aplicación. Con ella podemos crear validaciones o restringir a usuarios no registrados o con alguna configuración personalizada que os parezca.

Las carpeta responses es para las respuestas http del servidor. Aquí podríamos crear una respuesta 500, 501, 503 o la que convenga. Aquí se encuentran por defecto las más conocidas, 200, 404.

La carpeta services nos servirá para extender Sails. Podremos crear funciones u objetos y utilizarlas dentro del proyecto, envíos de correos o funciones para no repetir código. El servicio se podrá llamar en el proyecto dependiendo del nombre del archivo.

assets

Ésta carpeta incluirá todos los archivos javascript, hojas de estilo, plantillas html, imágenes, etc. Aquí también podremos incluir nuestras dependencias como jQuery.

config

Ésta carpeta mantiene los siguientes archivos de configuración.

  • blueprint.js
  • bootstrap.js
  • connections.js
  • cors.js
  • csrf.js
  • globals.js
  • http.js
  • i18n.js
  • log.js
  • models.js
  • policies.js
  • routes.js
  • session.js
  • sockets.js
  • views.js
Blueprint.js

Se encarga del comportamiento de los controladores y apis RESTful. Al momento de crear un controlador y un modelo con el mismo nombre, como Sails por defecto tiene éstas opciones habilitadas en true, se activarán en las apis cuantas sean creadas.

bootstrap.js

Aquí de manera sencilla podemos escribir alguna función que querramos ejecutar después de que Sails inicie.

connections.js

Con éste archivo configuramos las conexiones a nuestra base de datos.

cors.js

Archivo para la configuración del Cross-origin resource sharing. Aquí podremos configurar nuestro proyecto de peticiones ajax no autorizadas.

csrf.js

Aquí configuramos el Cross-site request forgery. Con ésto hacemos que las peticiones de formulario sean mas seguras.

globals.js

En éste archivo se especifica el uso de las variables globales. Ej, si no queremos usar la versión de lodash qu viene por defecto y usar la nuestra, entonces podemos deshabilitar la opcion _ a false.

http.js

Como Sails usa express en su núcleo, podremos modificar el comportamiento de las peticiones http que hace express.

i18n.js

Archivo que nos permite configurar parametros de los idiomas en los que estarán disponibles nuestra aplicación.

log.js

De momento no explicaremos éste archivo.

models.js

Configuraremos la conexión a usar para nuestro proyecto, las conexiones las encontramos en el archivo connections.js. También configuramos el comportamiento de las migraciones.

policies.js

Como parte de la seguridad, Sails tiene éste archivo para configurar las políticas de protección de los controladores de toda nuestra aplicación.

routes.js

Sails es un framework inspirado en Rails, por lo tanto la similitud de éste archivo en el framework es parecida. Aquí configuramos todas las rutas de las peticiones http de nuestro proyecto.

session.js

Útil archivo para configurar las sesiones que maneja express. Es necesario para que cada vez que reiniciemos nuestro proyecto, no tengamos que loguearnos de nuevo. Si no usamos éste archivo, cada vez que reiniciemos Sails, perderemos las sesiones activas.

sockets.js

Lo mismo con session.js sólo que es para escalar websockets. Como Sails usa socket.io, aquí podremos configurar su comportamiento.

views.js

Éste archivo tiene la configuración de las plantillas del proyecto. Sails usa por defecto ejs. En este archivo podremos configurar otro sistema de template como handlebars o jade.

También la carpeta config cuenta con otras dos más en su interior.

  • env
  • locales

La carpeta env tiene los entornos en los que correrá el proyecto en producción o en desarrollo.

Y en locales estarán los archivos de traducción que se usarán para los idiomas del proyecto.

tasks

Ésta carpeta contiene los archivos que se usarán para trabajar con Grunt. Hablaremos más a detalle de ésta carpeta.

views

Por último ésta carpeta tendrá todos las plantillas que se serviran como html en nuestro proyecto, aquí estará en frontend que necesitamos para mostrarle la interfaz a nuestros usuarios.

Aún queda más por explicar, pero eso será en otra publicación.

Hasta la próxima.