Cómo empezar con Sails.js


Como se describe en la página principal Sails.js:

"Sails hace que sea fácil de construir a medida, a nivel empresarial aplicaciones Node.js. Está diseñado para emular el patrón MVC familiar de frameworks como Ruby on Rails, pero con soporte para los requisitos de aplicaciones modernas: APIs basadas en datos, con una arquitectura orientada a servicios escalables. Es especialmente bueno para la construcción de chat, tableros de control en tiempo real, o juegos multijugador; pero se puede utilizar para cualquier proyecto de aplicación web - de arriba a abajo."

NOTA: Este tutorial asume que ya ha instalado Node.js en su máquina.

Instalación Sails.js

Sails.js está disponible como un paquete de NPM y puede ser descargado directamente usando el comando npm install. Tendrá que instalar el paquete en modo super usuario.

$ sudo npm install sails -g

Crear una nueva app Sails.js

El nuevo proyecto se puede crear con un simple comando:

$ sails new my-project
    info: Creada una nueva app Sails 'my-project'!

Ahora que el proyecto ha sido creado, vamos a ver el lo que está pasando detrás de las escenas:

$ cd my-project
    ~/my-project $ ls -la
    total 40
    drwxr-xr-x 7 4096 Aug 27 16:53 api
    -rw-r--r-- 1 1656 Aug 27 16:53 app.js
    drwxr-xr-x 6 4096 Aug 27 16:53 assets
    drwxr-xr-x 4 4096 Aug 27 16:53 config
    -rw-r--r-- 1 2134 Aug 27 16:53 Gruntfile.js
    drwxr-xr-x 2 4096 Aug 27 16:53 node_modules
    -rw-r--r-- 1  924 Aug 27 16:53 package.json
    -rw-r--r-- 1   56 Aug 27 16:53 README.md
    drwxr-xr-x 4 4096 Aug 27 16:53 tasks
    drwxr-xr-x 2 4096 Aug 27 16:53 views

Crear un usuario para su aplicación

Creación de un recurso de user de su aplicación que se puede hacer uso mediante este comando:


    ~/my-project $ sails generate api User
    info: Creado un nuevo modelo ("User") en api/models/User.js!
    info: Creado un nuevo controlador ("User") en api/controllers/UserController.js!

    info: REST API generado @ http://localhost:1337/User
    info: y estará disponible la próxima vez que ejecute 'sails lift'
    

El comando anterior crea dos archivos, uno dentro de las etiquetas api/models y otra dentro de api/controllers . Si se desplaza a esos archivos se ve que contienen una llamada module.exports vacía. Esto sucedió porque no especificamos ningún atributo de nuestro modelo o acciones de nuestro controlador. Si lo hace conocer los atributos, se podría crear un user de recursos de la siguiente manera:


    ~/my-project $ sails generate model User name:string email:string password:string
    ~/my-project $ sails generate controller User index create show edit delete
    

Vamos a arrancar la aplicación

La aplicación Sails.js se puede iniciar con el uso de este comando:

~/my-project $ sails lift

Al ejecutar este comando, puede pensar que tienes un error. No es en realidad un error, es un mensaje inmediato. Este mensaje se produjo porque al crear los modelos no especificamos si queremos Sails.js para reconstruir automáticamente las tablas, colecciones, conjuntos, etc. en nuestro esquema. Puede contestar el mensaje inmediato con 1 y el servidor se iniciará. Ahora la aplicación está lista para usar.

Pero, espera un segundo, no tenemos una base de datos todavía! Lo que nos lleva a ...

Conectividad con la Base de Datos

Abre el archivo config/connections.js en tu editor favorito. Es posible que vea algunos atributos de conexión ya enumerados en dicho archivo. Sólo tienes que seleccionar el que desea, MySQL, PostgreSQL o MongoDB y especificar los parámetros de conexión.

Vamos a utilizar MongoDB en este tutorial.

sailsMongoDBServer: {
      adapter: 'sails-mongo',
      host: 'localhost',
      port: 27017,
      database: 'mySailsDB'
      // user: 'username',
      // password: 'password'
    }
    

Después de especificar los parámetros de conexión, abra el archivo config/models.js . Puede ver la siguiente línea comentada:

  // conexión: 'DiskDb local ",  

Elimine el comentario de esta línea, y edite la clave de configuración que ha especificado en config/connections.js , en nuestro caso es conexión: 'sailsMongoDBServer' .

No se olvide de instalar la nueva gestión pública correspondiente para cualquier adaptador que configure. Sails.js lo necesitará para crear una conexión. Vamos a instalar el sails-mongo NPM:

~/my-project $ npm install sails-mongo

Ahora, iniciemos nuestra aplicación:

~/my-project $ sails lift

La aplicación (con suerte) se ejecutará correctamente! Pero, no sabemos si la base de datos se estableció correctamente ...

Crear una entrada en el Modelo de usuario

Si echamos un vistazo a nuestro UserController, podemos ver claramente que las acciones sólo responden con un mensaje TODO. Debemos cambiar eso. Waterline se incluye por defecto junto con Sails.js. Permite agregar una acción de crear a nuestro controlador:

create: function(req, res){
      var params = req.params.all()

      User.create({name: params.name}).exec(function createCB(err,created){
        return res.json({
          notice: 'Created user with name ' + created.name
        });
      });
    }
    

También habrá que agregar una ruta para esto. Abra el archivo config/routes.js en un editor. Las rutas se añaden en este archivo en un patrón de claves y valores. Añadir esta línea para el conjunto de claves-valor original:

'post /User': 'UserController.create'

Ahora, vamos a reiniciar el servidor y enviar una llamada POST a la URL, http://localhost:1337/User, y pasar el parámetro, name .

curl -X POST --data 'name="raw engineering"' http://localhost:1337/User

Después de hacer esto, puede ir a la consola de base de datos y confirmar que un usuario con el nombre de raw engineering existe.

Resumen

Esto es lo que acabamos de hacer:

  1. Creamos una aplicación Sails.js
  2. Creamos recursos con campos personalizados
  3. Parámetros de conexión de base de datos Modificado
  4. Se ha añadido una ruta personalizada
  5. Crea una entrada en la base de datos