Framework de Desarrollo Web para

Pillars.js logo
const project = require('pillars'); 

project.services.get('http').start();

// Modelo de servidor orientado a objetos:
project.routes.add(new Route({
method: ["GET","POST"],
port: 8080,
path: "/hola",
https: false,
cors: true,
session: true
},function(gw){
gw.session.counter = gw.session.counter || 0;
gw.session.counter++;
gw.html("Hola!!, tu IP es: " + gw.ip + " y esta es tu visita nº "+ gw.session.counter);
});

Negociación HTTPEstabilidad y funcionalidad

  • Envío de archivos con compresión, gestión de caché y byte-range. Compatible con streaming y recuperación de descargas
  • Parser de solicitudes para form-urlencoded, multipart y json
  • Control automático de errores en manejadores
  • CORS administrable por ruta
  • Compresión de respuesta automática
  • Negociación automática de caché
  • Gestión de Cookies y encriptado
  • etag encriptado con sorpote para múltiples valores

EnrutadoEntorno dinámico

  • Acceso en vivo a todos los controladores del sistema
  • Todos los controladores de tu aplicación en project.routes
  • Convención antes que configuración
  • Añade, modifica o elimina controladores en caliente
  • Mejor organización de funcionalidades en árboles de controladores
  • Nombrado de controladores; ofrece organización y control sobre el entorno
  • Comunicación middleware y controladores
// Añade el objeto route a project.routes
project.routes.add(new Route({
id:"home",
path:"/web",
method:["POST"|"GET"]
},function(gw){
gw.send("Hello from the other side");
}));

// Toma un controlador y lo desactiva
project.routes.get("home").active = false;

// Elimina un controlador
project.routes.remove("home");

GangwayRequest y Response

  • Gangway is the way. Olvida el request y response nativos. Gangway encapsula ambos, ofreciendo propiedades y métodos vitaminados.
  • Con tan solo un gw.file(), haces streaming!
const myRoute = new Route(
{
id:"users"
path:"/users"
},
function(gw){
const ip = gw.ip; // Dirección IP de la solicitud
const POST = gw.content.params; // POST de la solicitud
const GET = gw.query; // GET de la solicitud
/*
GET:{
id: '37',
value: 'lipsum'
}
*/

const cookie = gw.cookie; // Cookie de la solicitud
const method = gw.method; // Método de la petición
const browserLang = gw.language; // Primer idioma del navegador cliente
const userAgent = gw.ua;
/*
ua:{
mobile: false,
os: 'Windows NT 6.1; WOW64',
engine: 'Blink',
browser: 'Chrome'
}
*/

const cors = gw.cors; // Gestión de orígenes cruzados
const encoding = gw.encoding; // encoding que se utiliza para el envío al cliente

gw.send("Hello from the other side");

}
);

MiddlewareMiddleware vitaminado

  • El Middleware permite extender las posibilidades de los controladores y modificar el funcionamiento del sistema
  • Nombrado de middleware: ofrece organización y control sobre el entorno
  • Todos los middleware del proyecto se encuentran en project.middleware
  • Los middleware se pueden añadir, modificar o eliminar en caliente.
  • PillarsJS tiene una serie de Middleware built-in, esenciales para su funcionamiento.
  • Es posible crear un middleware y decidir en qué lugar a de ejecutarse, en caliente.
const project = require('pillars');

project.middleware.add(new Middleware({
id:"idMiddleware",
active: true
},function(gw,next){
// Do something
next();
});


i18nInternacionalización eficiente

  • Librería textualization
  • Integración completa de i18n
  • Implementa múltiples idiomas sin modificar el código de la app.
  • Hojas de traducción en JS/JSON
  • Gestión de idioma de la solicitud automática
  • Rutas multi-idioma :-)

Template engineUsa tu motor favorito

  • Soporte a diferentes motores de plantillas
  • Renderizado automático y optimizado.

CRONLibrería Scheduled

  • Programación de tareas mediante CRON gracias a la librería Scheduled
  • Acceso a todas las tareas programadas en el proyecto
  • Acceso en vivo a las tareas programas: modificación, eliminación, ...
Volver arriba