¿Qué es KeystoneJS?

KeystoneJS facilita la construcción de aplicaciones o sitios web de contenido gestionado por Node.js con tan solo un par de líneas de código.

Para empezar

Solo se requiere de express.js (framework del servidor web) y MongoDB  (base de datos NoSQL) a través de mangoose.

Keystone está diseñado para hacer que las cosas complicadas sean simples, sin limitar el poder o la flexibilidad de Node.js.

¿Qué necesito?

Primeramente un conocimiento razonable de Javascript para utilizar KeystoneJS, así como en bases de datos, y uso de node/npm.

Y posteriormente, asegurarte de que Node.js y MongoDB se encuentran instalados en tu equipo.

Un detalle que debes tener en cuenta, es que también se utiliza conocimiento en Jade para las vistas de templates y LESS para las plantillas en CSS.

Iniciando un nuevo proyecto

  • Crea un directorio para el nuevo proyecto
  • Agrega los archivos siguientes (cada uno responsable de la configuración del proyecto e iniciación del webserver):
{
  "name": "my-project",
  "version": "0.0.1",
  "private": true,
  "dependencies": {
    "keystone": "latest",
    "underscore": "latest"
  },
  "engines": {
    "node": "0.10.x",
    "npm": "1.3.x"
  },
  "scripts": {
    "start": "web.js"
  }
}

Si te das cuenta se están manejando funciones de la biblioteca underscore , ya que posteriormente se utilizarán algunas de sus funcionalidades. Puedes usar cualquier otro paquete de tu gusto de npm en tu aplicación Keystone y añadirle package.json .

var keystone = require('keystone');
keystone.init({

  'name': 'My Project',

  'favicon': 'public/favicon.ico',
  'less': 'public',
  'static': 'public',

  'views': 'templates/views',
  'view engine': 'jade',

  'auto update': true,
  'mongo': 'mongodb://localhost/my-project',

  'session': true,
  'auth': true,
  'user model': 'User',
  'cookie secret': '(your secret here)'

});

require('./models');

keystone.set('routes', require('./routes'));

keystone.start();
  • Ahora, ejecuta el comando npm install, para instalar Keystone.

Si requieres más información sobre las opciones de soporte de Keystone puedes revisar la guía de configuración.

Ten en cuenta que la secuencia de comandos web no funcionará aún, puesto que estamos incluyendo modelos y rutas que no se han establecido aún.

Estructura del proyecto

Con el paquete y los scripts ya listos es momento de armar los contenedores de la app. Crea un directorio con la siguiente estructura:

|--lib
|  Custom libraries and other code
|--models
|  Your application's database models
|--public
|  Static files (css, js, images, etc.) that are publicly available
|--routes
|  |--api
|  |  Your application's api controllers
|  |--views
|  |  Your application's view controllers
|  |--index.js
|  |  Initialises your application's routes and views
|  |--middleware.js
|  |  Custom middleware for your routes
|--templates
|  |--includes
|  |  Common .jade includes go in here
|  |--layouts
|  |  Base .jade layouts go in here
|  |--mixins
|  |  Common .jade mixins go in here
|  |--views
|  |  Your application's view templates
|--updates
|  Data population and migration scripts
|--package.json
|  Project configuration for npm
|--web.js
|  Main script that starts your application

Documentación

Para más detalles de instalación, configuración y como iniciarte con Keystone visita la guía de ayuda. Así mismo se pone a nuestra disposición algunos ejemplos de aplicaciones a base de demostraciones y un sitio web.

Cecy Martínez

Cecy Martínez

Jefa de contenido y editora en HTML5Fácil, NinjaCodeTV, Desveloperstv y Co funder de WaveCode.LA

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Cerrar