Pillars.js framework de desarrollo web para Node.js
-
Upload
chelo-quilon-gomez -
Category
Software
-
view
558 -
download
1
Transcript of Pillars.js framework de desarrollo web para Node.js
![Page 1: Pillars.js framework de desarrollo web para Node.js](https://reader036.fdocumento.com/reader036/viewer/2022062515/55cad21ebb61ebdd5f8b485c/html5/thumbnails/1.jpg)
16 junio 2015 - Madrid
![Page 2: Pillars.js framework de desarrollo web para Node.js](https://reader036.fdocumento.com/reader036/viewer/2022062515/55cad21ebb61ebdd5f8b485c/html5/thumbnails/2.jpg)
framework de desarrollo web para
www.pillarsjs.com
![Page 3: Pillars.js framework de desarrollo web para Node.js](https://reader036.fdocumento.com/reader036/viewer/2022062515/55cad21ebb61ebdd5f8b485c/html5/thumbnails/3.jpg)
¿Por qué?
![Page 5: Pillars.js framework de desarrollo web para Node.js](https://reader036.fdocumento.com/reader036/viewer/2022062515/55cad21ebb61ebdd5f8b485c/html5/thumbnails/5.jpg)
•Optimización de tiempos de desarrollo
•Entorno homogéneo
•Estructuras Dinámicas
•“Pluginizable”
•Herramientas
Objetivos de Pillars.jsProporcionar un entorno de trabajo homogéneo,
asequible y optimizado, para de esta forma hacer llegar el desarrollo web en Node.js a un público más
amplio.
![Page 6: Pillars.js framework de desarrollo web para Node.js](https://reader036.fdocumento.com/reader036/viewer/2022062515/55cad21ebb61ebdd5f8b485c/html5/thumbnails/6.jpg)
ObjetivoOfrecer a la comunidad un
marco de desarrollo web para Node.js, sencillo, ágil y bien
documentado.Las herramientas que necesitamos para el desarrollo web, estén implementadas
de base.
Make it easy!
![Page 7: Pillars.js framework de desarrollo web para Node.js](https://reader036.fdocumento.com/reader036/viewer/2022062515/55cad21ebb61ebdd5f8b485c/html5/thumbnails/7.jpg)
Estado actual
![Page 8: Pillars.js framework de desarrollo web para Node.js](https://reader036.fdocumento.com/reader036/viewer/2022062515/55cad21ebb61ebdd5f8b485c/html5/thumbnails/8.jpg)
• Documentación de librerías
• Documentación y referencia en Inglés
• Test unitarios
![Page 9: Pillars.js framework de desarrollo web para Node.js](https://reader036.fdocumento.com/reader036/viewer/2022062515/55cad21ebb61ebdd5f8b485c/html5/thumbnails/9.jpg)
Hola Mundo!
![Page 10: Pillars.js framework de desarrollo web para Node.js](https://reader036.fdocumento.com/reader036/viewer/2022062515/55cad21ebb61ebdd5f8b485c/html5/thumbnails/10.jpg)
Hello World!! - Code
/01-hello-world/app.js
![Page 11: Pillars.js framework de desarrollo web para Node.js](https://reader036.fdocumento.com/reader036/viewer/2022062515/55cad21ebb61ebdd5f8b485c/html5/thumbnails/11.jpg)
![Page 12: Pillars.js framework de desarrollo web para Node.js](https://reader036.fdocumento.com/reader036/viewer/2022062515/55cad21ebb61ebdd5f8b485c/html5/thumbnails/12.jpg)
Información en consola de las peticiones y envíos
![Page 13: Pillars.js framework de desarrollo web para Node.js](https://reader036.fdocumento.com/reader036/viewer/2022062515/55cad21ebb61ebdd5f8b485c/html5/thumbnails/13.jpg)
Negociación HTTP
gangway: un objeto generado automáticamente en cada petición. Tiene como propiedades los datos del request parseados y métodos para la respuesta (response).
gwPlugins built-inLangPath, encoding, maxUploadSize, CORS, directory, bodyReader{
![Page 14: Pillars.js framework de desarrollo web para Node.js](https://reader036.fdocumento.com/reader036/viewer/2022062515/55cad21ebb61ebdd5f8b485c/html5/thumbnails/14.jpg)
Gestión de Caché del sistema de archivos
.maxCacheFileSizeTamaño máximo de un archivo para que entre en la caché. Si el archivo supera este tamaño no lo mete en memoria ni lo comprime.
.cacheMaxSamplesDato relacionado con la heurística del reciclado de caché del servidor, indica el máximo número de usos que se tienen en cuenta para el cálculo.
.cacheMaxSize Tamaño máximo de la caché del servidor.
.cacheMaxItems Número máximo de elementos en la caché del servidor.
project.config
![Page 15: Pillars.js framework de desarrollo web para Node.js](https://reader036.fdocumento.com/reader036/viewer/2022062515/55cad21ebb61ebdd5f8b485c/html5/thumbnails/15.jpg)
Cabeceras HTTP parseadas
Accepts gw.accepts.types Array ordenado
Accepts-Language gw.accepts.languagesgw.language//> ‘en’
Accepts-Encoding gw.accepts.encodingsgw.encoding//> ‘deflate’
User-Agent gw.uagw.ua.mobile//> false
Authorization gw.auth
gw.auth.user, gw.auth.pass//> ‘userName’, ‘userPass’
CORS gw.corstrue, false o array de dominios
ejemplos
![Page 16: Pillars.js framework de desarrollo web para Node.js](https://reader036.fdocumento.com/reader036/viewer/2022062515/55cad21ebb61ebdd5f8b485c/html5/thumbnails/16.jpg)
Datos de la solicitud
IP gw.ip
HOST gw.host
PUERTO gw.port
MÉTODO gw.method
FICHEROS gw.files
POST gw.content.params
GET gw.query
PATH PARAMS gw.pathParams
HTTPS gw.https
ejemplos
![Page 17: Pillars.js framework de desarrollo web para Node.js](https://reader036.fdocumento.com/reader036/viewer/2022062515/55cad21ebb61ebdd5f8b485c/html5/thumbnails/17.jpg)
Respuesta
Envío de ficheros gw.file()
Envío (response)gw.send(), gw.html(), gw.text(), gw.json()...
ejemplos
![Page 18: Pillars.js framework de desarrollo web para Node.js](https://reader036.fdocumento.com/reader036/viewer/2022062515/55cad21ebb61ebdd5f8b485c/html5/thumbnails/18.jpg)
Gestión de Cookies
Seteo cookies para el envíogw.setCookie(name, value [, config]);
Cookies enviadas en el request
gw.cookie;
WWW-Authenticate
gw.authenticate();gw.auth.usergw.auth.pass
ejemplos
![Page 19: Pillars.js framework de desarrollo web para Node.js](https://reader036.fdocumento.com/reader036/viewer/2022062515/55cad21ebb61ebdd5f8b485c/html5/thumbnails/19.jpg)
Enrutado y controladores
&project.routesRoute Class
![Page 20: Pillars.js framework de desarrollo web para Node.js](https://reader036.fdocumento.com/reader036/viewer/2022062515/55cad21ebb61ebdd5f8b485c/html5/thumbnails/20.jpg)
/a-1
project.routes
/b-1 /b-2 /b-n...
/a-2
/c-1 /c-2 /c-n...
/a-n
/z-1 /z-2 /z-n...
...
![Page 21: Pillars.js framework de desarrollo web para Node.js](https://reader036.fdocumento.com/reader036/viewer/2022062515/55cad21ebb61ebdd5f8b485c/html5/thumbnails/21.jpg)
Route Class
var myRoute = new Route( configuration, handler);
![Page 22: Pillars.js framework de desarrollo web para Node.js](https://reader036.fdocumento.com/reader036/viewer/2022062515/55cad21ebb61ebdd5f8b485c/html5/thumbnails/22.jpg)
project.routes{.add(route object)
.get(id route object)
.remove(id route object)
.move(id route object)
Añadiendo hijos
![Page 23: Pillars.js framework de desarrollo web para Node.js](https://reader036.fdocumento.com/reader036/viewer/2022062515/55cad21ebb61ebdd5f8b485c/html5/thumbnails/23.jpg)
{.add(route object)
.get(id route object)
.remove(id route object)
.move(id route object)
myRoute.routes
instancia de la Clase Route
Añadiendo hijos
![Page 24: Pillars.js framework de desarrollo web para Node.js](https://reader036.fdocumento.com/reader036/viewer/2022062515/55cad21ebb61ebdd5f8b485c/html5/thumbnails/24.jpg)
Plugins
&project.pluginsPluginClass
Control y direccionamiento de la solicitud
![Page 25: Pillars.js framework de desarrollo web para Node.js](https://reader036.fdocumento.com/reader036/viewer/2022062515/55cad21ebb61ebdd5f8b485c/html5/thumbnails/25.jpg)
project.plugins
El funcionamiento y flujo de trabajo en Pillars.js se basa en la Cadena de
Plugins, que está formada por objetos de la Clase Plugin.
Plugin router.js
Controlador(Route)
![Page 26: Pillars.js framework de desarrollo web para Node.js](https://reader036.fdocumento.com/reader036/viewer/2022062515/55cad21ebb61ebdd5f8b485c/html5/thumbnails/26.jpg)
project.plugins{.add(plugin object)
.get(id plugin object)
.remove(id plugin object)
.move(id plugin object)
Añadiendo plugins
![Page 27: Pillars.js framework de desarrollo web para Node.js](https://reader036.fdocumento.com/reader036/viewer/2022062515/55cad21ebb61ebdd5f8b485c/html5/thumbnails/27.jpg)
PluginClass
project.plugins.add(myPlugin, ‘p2’);
Controlador(Route)
![Page 28: Pillars.js framework de desarrollo web para Node.js](https://reader036.fdocumento.com/reader036/viewer/2022062515/55cad21ebb61ebdd5f8b485c/html5/thumbnails/28.jpg)
Creación de un Plugin
Un Plugin sólo afectará/se ejecutará en las instancias route que
determinemos.
![Page 29: Pillars.js framework de desarrollo web para Node.js](https://reader036.fdocumento.com/reader036/viewer/2022062515/55cad21ebb61ebdd5f8b485c/html5/thumbnails/29.jpg)
Ejemplo. Plugin que bloquea una URI al visitarla más de 5 veces.
![Page 30: Pillars.js framework de desarrollo web para Node.js](https://reader036.fdocumento.com/reader036/viewer/2022062515/55cad21ebb61ebdd5f8b485c/html5/thumbnails/30.jpg)
i18nLibrería textualization
https://github.com/bifuer/textualization
![Page 31: Pillars.js framework de desarrollo web para Node.js](https://reader036.fdocumento.com/reader036/viewer/2022062515/55cad21ebb61ebdd5f8b485c/html5/thumbnails/31.jpg)
es.js
en.js
idioma por defecto
2/3
Hello!! - i18n
![Page 32: Pillars.js framework de desarrollo web para Node.js](https://reader036.fdocumento.com/reader036/viewer/2022062515/55cad21ebb61ebdd5f8b485c/html5/thumbnails/32.jpg)
Hello World!! - i18n
1/3
![Page 33: Pillars.js framework de desarrollo web para Node.js](https://reader036.fdocumento.com/reader036/viewer/2022062515/55cad21ebb61ebdd5f8b485c/html5/thumbnails/33.jpg)
Hello World!! - i18n
Hojas de traducción JS/JSON - 3/3
![Page 34: Pillars.js framework de desarrollo web para Node.js](https://reader036.fdocumento.com/reader036/viewer/2022062515/55cad21ebb61ebdd5f8b485c/html5/thumbnails/34.jpg)
Directorio estáticoBuilt-in: directory.js
![Page 35: Pillars.js framework de desarrollo web para Node.js](https://reader036.fdocumento.com/reader036/viewer/2022062515/55cad21ebb61ebdd5f8b485c/html5/thumbnails/35.jpg)
Creación de directorio estático
![Page 36: Pillars.js framework de desarrollo web para Node.js](https://reader036.fdocumento.com/reader036/viewer/2022062515/55cad21ebb61ebdd5f8b485c/html5/thumbnails/36.jpg)
Librerías
![Page 37: Pillars.js framework de desarrollo web para Node.js](https://reader036.fdocumento.com/reader036/viewer/2022062515/55cad21ebb61ebdd5f8b485c/html5/thumbnails/37.jpg)
templated Añade motores de renderizado. https://github.com/bifuer/templated
textualization
Internacionalización https://github.com/bifuer/textualization
Scheduled Automatización de tareas con patrones cron y control de estado.
https://github.com/bifuer/scheduled
Crier Gestión de logs, configuración de almacén, tipo de log, etc.
https://github.com/bifuer/crier
Procedure Simple JS async development https://github.com/bifuer/procedure
JSON.decycled
Versión de JSON.stringify() y JSON.parse() respectivamente, pero compatible con objetos con referencias circulares, expresiones regulares, objetos de error, objetos date y funciones.
https://github.com/bifuer/JSON.decycled
Algunas de las librerías están aún sin documentar. Estamos trabajando en ello ;).
![Page 38: Pillars.js framework de desarrollo web para Node.js](https://reader036.fdocumento.com/reader036/viewer/2022062515/55cad21ebb61ebdd5f8b485c/html5/thumbnails/38.jpg)
Turno de Preguntas
![Page 39: Pillars.js framework de desarrollo web para Node.js](https://reader036.fdocumento.com/reader036/viewer/2022062515/55cad21ebb61ebdd5f8b485c/html5/thumbnails/39.jpg)
Referencia y manualesdisponibles en: www.pillarsjs.com
¡Gracias a todos por vuestra atención!
Si quieres colaborar{[email protected]@pillarsjs.com