SlideShare a Scribd company logo
Miguel Angel Alvarez
BASES DE DATOS EN TIEMPO REAL
MeteorJS
@midesweb
@EscuelaIT
Qué veremos hoy
▪ Índice
o MeteorJS
• Qué es MeteorJS
• Primeros pasos
o Creando un todo-list
• Templates
• Eventos
• Colecciones, acceso a datos en tiempo real
Bases de datos en tiempo real
Bases de datos en tiempo real
MeteorJS
Meteor (MeteorJS) es un framework
fullstack, basado en Javascript (NodeJS
y Javascript para el navegador).
- Aplicaciones multiplataforma
- Web
- iOS
- Android
- Desktop
Introducción a MeteorJS
Qué es Meteor
Introducción a MeteorJS
Además de ser multiplataforma, su característica más importante
es la posibilidad de desarrollar aplicaciones con bases de datos en
tiempo real.
- El sistema proporciona los datos al cliente
- Si los datos cambian, el sistema envía los datos de nuevo al
cliente, sin hacer ningún tipo de programación adicional.
Características
Introducción a MeteorJS
https://www.meteor.com/install
Instalación
Introducción a MeteorJS
meteor create myapp
cd myapp
meteor npm install
meteor
Crear una aplicación
Práctica!
Crear una aplicación todo-list
- Situamos nuestros elementos de interfaz gráfica en
imports/ui
- Archivo .html (la vista)
- Archivo .js (importa la plantilla y define el modelo)
Templates
https://www.meteor.com/tutorials
Crear una aplicación todo-list
Creamos colecciones directamente en la base de datos
MongoDB.
1. Creamos una colección imports/api/tasks.js
2. Cargar la colección en el servidor server/main.js
3. Cargar la colección en el cliente imports/ui/body.js
Ahora podemos agregar items a la colección mediante consola:
meteor mongo
db.tasks.insert({ text: "Hello world!", createdAt: new Date() });
Colecciones
Crear una aplicación todo-list
Creamos un formulario para crear tareas
1. Creamos el formulario en el cuerpo imports/ui/body.js
2. Definimos un evento para almacenar las tareas en el
controlador del cuerpo imports/ui/body.js
3. Ordenamos las tareas por fecha
Alta de tareas
Crear una aplicación todo-list
Marcar las tareas como acabadas y borrarlas.
1. Creamos el template para las tareas imports/ui/task.html
a. Checkbox para definirla como completada
b. Botón parar borrarla
2. Definimos manejadores de eventos en imports/ui/task.js
a. Task.update() implementar actualizaciones
b. Task.remove() borrados
3. Eliminamos el template de task anterior e importamos el
template de task nuevo en body.js
Actualizaciones y borrados
Crear una aplicación todo-list
Instalamos un diccionario reactivo para almacenar el estado.
meteor add reactive-dict
1. Actualizamos template del imports/ui/body.html
a. Checkbox para marcar visibilidad de las tareas completadas
b. Variable para mostrar número de tareas no completadas
2. Comportamientos en imports/ui/body.js
a. Importamos ReactiveDict
b. Inicializamos el estado en onCreated
c. Las tareas que se devuelven al templeta pueden ser unas u otras
dependiento del estado
d. IncompleteCount se define con el resultado de una búsqueda
e. Evento para manejar cambios en el estado al activar el checkbox
Gestión del estado
Crear una aplicación todo-list
Instalamos el módulo de gestión de usuarios.
meteor add accounts-ui accounts-password
1. Incluimos el template de usuarios en imports/ui/body.html
2. Configuración en imports/startup/accounts-config.js
3. Incluir la configuración en el client/main.js
4. Almacenar los datos del usuario
5. Mostrar el formulario solamente si el usuario está logueado
6. Mostrar el usuario que ha creado el task
Gestión de usuarios
Crear una aplicación todo-list
Quitamos el package "insecure".
remove insecure
1. Redefinimos imports/api/task.js
a. Importamos meteor/meteor y meteor/check
b. Creamos métodos para operaciones con tasks
2. Ejecutar método insert en imports/ui/body.js
3. Ejecutar método para setChecked y remove en
imports/ui/task.js
Seguridad
Gracias
Miguel Angel Alvarez
insight@insightcreativos.com
649 76 76 31
@midesweb

More Related Content

What's hot

Instalar y configurar my sql server en windows
Instalar y configurar my sql server en windowsInstalar y configurar my sql server en windows
Instalar y configurar my sql server en windows
Kerlyta BC
 

What's hot (20)

Instalación del conector MySQL para .NET
Instalación del conector MySQL para .NETInstalación del conector MySQL para .NET
Instalación del conector MySQL para .NET
 
Servidores web: cloud
Servidores web: cloudServidores web: cloud
Servidores web: cloud
 
Aspectos nodejs
Aspectos nodejsAspectos nodejs
Aspectos nodejs
 
ASP.NET MVC - validacion de datos
ASP.NET MVC - validacion de datosASP.NET MVC - validacion de datos
ASP.NET MVC - validacion de datos
 
Instalar y configurar my sql server en windows
Instalar y configurar my sql server en windowsInstalar y configurar my sql server en windows
Instalar y configurar my sql server en windows
 
Why Azure is so MEAN?
Why Azure is so MEAN?Why Azure is so MEAN?
Why Azure is so MEAN?
 
ASP.NET MVC - Introducción a ASP.NET MVC
ASP.NET MVC - Introducción a ASP.NET MVCASP.NET MVC - Introducción a ASP.NET MVC
ASP.NET MVC - Introducción a ASP.NET MVC
 
Conociendo ReactJs . Scio Talks
Conociendo ReactJs . Scio TalksConociendo ReactJs . Scio Talks
Conociendo ReactJs . Scio Talks
 
Máquinas Virtuales en Microsoft Azure con C# .Net
Máquinas Virtuales en Microsoft Azure con C# .NetMáquinas Virtuales en Microsoft Azure con C# .Net
Máquinas Virtuales en Microsoft Azure con C# .Net
 
Despliegue de aplicaciones web en Microsoft Azure
Despliegue de aplicaciones web en Microsoft AzureDespliegue de aplicaciones web en Microsoft Azure
Despliegue de aplicaciones web en Microsoft Azure
 
Prepared statement
Prepared statementPrepared statement
Prepared statement
 
JDBC (Java Database Connectivity)
JDBC (Java Database Connectivity)JDBC (Java Database Connectivity)
JDBC (Java Database Connectivity)
 
Servidor web nginx
Servidor web nginxServidor web nginx
Servidor web nginx
 
JAVA SERVER FACES - LECCION 01 - PRIMEROS PASOS
JAVA SERVER FACES - LECCION 01 - PRIMEROS PASOSJAVA SERVER FACES - LECCION 01 - PRIMEROS PASOS
JAVA SERVER FACES - LECCION 01 - PRIMEROS PASOS
 
Pruebas del servicio web
Pruebas del servicio webPruebas del servicio web
Pruebas del servicio web
 
JDBC
JDBCJDBC
JDBC
 
ReConnect 2015 - ASP.NET 5: MVC 6 y EF 7
ReConnect 2015  - ASP.NET 5: MVC 6 y EF 7ReConnect 2015  - ASP.NET 5: MVC 6 y EF 7
ReConnect 2015 - ASP.NET 5: MVC 6 y EF 7
 
Dprn3 u3 a1_jubm
Dprn3 u3 a1_jubmDprn3 u3 a1_jubm
Dprn3 u3 a1_jubm
 
Manual de instalacion de mysql Server mysql-workbench-xamp server
Manual de instalacion de mysql Server mysql-workbench-xamp server Manual de instalacion de mysql Server mysql-workbench-xamp server
Manual de instalacion de mysql Server mysql-workbench-xamp server
 
El combate del siglo: AngularJS vs ReactJS
El combate del siglo: AngularJS vs ReactJSEl combate del siglo: AngularJS vs ReactJS
El combate del siglo: AngularJS vs ReactJS
 

Similar to Webinar: Base de Datos en tiempo real con MeteorJS

El Mal Odiado Javascript
El Mal Odiado JavascriptEl Mal Odiado Javascript
El Mal Odiado Javascript
El Jota
 
Reportes En J Developer Parte 1 Y 2
Reportes En J Developer   Parte 1 Y 2Reportes En J Developer   Parte 1 Y 2
Reportes En J Developer Parte 1 Y 2
Steven Gomez
 

Similar to Webinar: Base de Datos en tiempo real con MeteorJS (20)

Efc programación .net-luis fernando aguas - 22012022 1700
Efc programación .net-luis fernando aguas - 22012022 1700Efc programación .net-luis fernando aguas - 22012022 1700
Efc programación .net-luis fernando aguas - 22012022 1700
 
CrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NETCrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NET
 
Cross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.netCross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.net
 
Introducción al desarrollo Web: Frontend con Angular 6
Introducción al desarrollo Web: Frontend con Angular 6Introducción al desarrollo Web: Frontend con Angular 6
Introducción al desarrollo Web: Frontend con Angular 6
 
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptx
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptxEFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptx
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptx
 
Introducción a react + redux
Introducción a react + reduxIntroducción a react + redux
Introducción a react + redux
 
Visual studio 2010
Visual studio 2010Visual studio 2010
Visual studio 2010
 
inLab FIB MeteorJS workshop by uLab UPC - Telefonica I+D
inLab FIB MeteorJS workshop by uLab UPC - Telefonica I+DinLab FIB MeteorJS workshop by uLab UPC - Telefonica I+D
inLab FIB MeteorJS workshop by uLab UPC - Telefonica I+D
 
Aplicación abc. asp net mvc 3
Aplicación abc. asp net mvc 3Aplicación abc. asp net mvc 3
Aplicación abc. asp net mvc 3
 
Evolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptx
Evolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptxEvolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptx
Evolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptx
 
Rails intro
Rails introRails intro
Rails intro
 
Vue + Typescript: Decorators vs. Extend, Fight!
Vue + Typescript: Decorators vs. Extend, Fight!Vue + Typescript: Decorators vs. Extend, Fight!
Vue + Typescript: Decorators vs. Extend, Fight!
 
UDA-Guia desarrollo web services
UDA-Guia desarrollo web servicesUDA-Guia desarrollo web services
UDA-Guia desarrollo web services
 
El Mal Odiado Javascript
El Mal Odiado JavascriptEl Mal Odiado Javascript
El Mal Odiado Javascript
 
Reportes En J Developer Parte 1 Y 2
Reportes En J Developer   Parte 1 Y 2Reportes En J Developer   Parte 1 Y 2
Reportes En J Developer Parte 1 Y 2
 
[Code Camp 2009] ASP.NET MVC a full (Matías Juan Rubí + Jonathan Solarz)
[Code Camp 2009] ASP.NET MVC a full (Matías Juan Rubí + Jonathan Solarz)[Code Camp 2009] ASP.NET MVC a full (Matías Juan Rubí + Jonathan Solarz)
[Code Camp 2009] ASP.NET MVC a full (Matías Juan Rubí + Jonathan Solarz)
 
Desarrollo de Aplicaciones con Microsoft Ajax 1.0 y Ajax Control Toolkit
Desarrollo de Aplicaciones con Microsoft Ajax 1.0 y Ajax Control ToolkitDesarrollo de Aplicaciones con Microsoft Ajax 1.0 y Ajax Control Toolkit
Desarrollo de Aplicaciones con Microsoft Ajax 1.0 y Ajax Control Toolkit
 
Curso de Desarrollo Web 2
Curso de Desarrollo Web 2Curso de Desarrollo Web 2
Curso de Desarrollo Web 2
 
Ruby On Rails Intro
Ruby On Rails IntroRuby On Rails Intro
Ruby On Rails Intro
 
Presentacion #bbmnk
Presentacion #bbmnkPresentacion #bbmnk
Presentacion #bbmnk
 

More from Arsys

More from Arsys (20)

Whitepaper Arsys - Cómo reducir el consumo energético de un data center
Whitepaper Arsys - Cómo reducir el consumo energético de un data centerWhitepaper Arsys - Cómo reducir el consumo energético de un data center
Whitepaper Arsys - Cómo reducir el consumo energético de un data center
 
Whitepaper: La importancia del Delegado de Protección de Datos en una empresa...
Whitepaper: La importancia del Delegado de Protección de Datos en una empresa...Whitepaper: La importancia del Delegado de Protección de Datos en una empresa...
Whitepaper: La importancia del Delegado de Protección de Datos en una empresa...
 
Contenedores y protección de datos empresariales | Whitepaper
Contenedores y protección de datos empresariales | WhitepaperContenedores y protección de datos empresariales | Whitepaper
Contenedores y protección de datos empresariales | Whitepaper
 
Cómo elegir un software CRM adecuado a las necesidades de la organización
Cómo elegir un software CRM adecuado a las necesidades de la organizaciónCómo elegir un software CRM adecuado a las necesidades de la organización
Cómo elegir un software CRM adecuado a las necesidades de la organización
 
Webinar - eCommerce: ¿Cómo puedo vender en Amazon?
Webinar - eCommerce: ¿Cómo puedo vender en Amazon?Webinar - eCommerce: ¿Cómo puedo vender en Amazon?
Webinar - eCommerce: ¿Cómo puedo vender en Amazon?
 
Webinar - Primeros pasos con plesk
Webinar - Primeros pasos con pleskWebinar - Primeros pasos con plesk
Webinar - Primeros pasos con plesk
 
Webinar- Requisitos legales para crear una Tienda Online
Webinar- Requisitos legales para crear una Tienda OnlineWebinar- Requisitos legales para crear una Tienda Online
Webinar- Requisitos legales para crear una Tienda Online
 
Whitepaper - ¿Cómo elegir entre VPS, Servidor Cloud o Servidor dedicado?
Whitepaper - ¿Cómo elegir entre VPS, Servidor Cloud o Servidor dedicado?Whitepaper - ¿Cómo elegir entre VPS, Servidor Cloud o Servidor dedicado?
Whitepaper - ¿Cómo elegir entre VPS, Servidor Cloud o Servidor dedicado?
 
Whitepaper - Cómo implementar el teletrabajo seguro en la empresa
Whitepaper - Cómo implementar el teletrabajo seguro en la empresaWhitepaper - Cómo implementar el teletrabajo seguro en la empresa
Whitepaper - Cómo implementar el teletrabajo seguro en la empresa
 
Whitepaper - Guía Básica del Cloud Computing
Whitepaper - Guía Básica del Cloud ComputingWhitepaper - Guía Básica del Cloud Computing
Whitepaper - Guía Básica del Cloud Computing
 
Webinar – Introducción a Google Analytics
Webinar – Introducción a Google AnalyticsWebinar – Introducción a Google Analytics
Webinar – Introducción a Google Analytics
 
Guia automatizar herramientas-grc
Guia automatizar herramientas-grcGuia automatizar herramientas-grc
Guia automatizar herramientas-grc
 
Whitepaper - Cómo crear un menú desplegable en WordPress
Whitepaper - Cómo crear un menú desplegable en WordPress Whitepaper - Cómo crear un menú desplegable en WordPress
Whitepaper - Cómo crear un menú desplegable en WordPress
 
Whitepaper-Cómo gestionar tu WordPress por medio de la línea de comandosd
Whitepaper-Cómo gestionar tu WordPress por medio de la línea de comandosdWhitepaper-Cómo gestionar tu WordPress por medio de la línea de comandosd
Whitepaper-Cómo gestionar tu WordPress por medio de la línea de comandosd
 
La conversión de dominios internacionalizados: Punycode
La conversión de dominios internacionalizados: PunycodeLa conversión de dominios internacionalizados: Punycode
La conversión de dominios internacionalizados: Punycode
 
Cómo configurar un home office totalmente productivo
Cómo configurar un home office totalmente productivoCómo configurar un home office totalmente productivo
Cómo configurar un home office totalmente productivo
 
Whitepaper - Elige el servicio de hosting más indicado para tu proyecto
Whitepaper - Elige el servicio de hosting más indicado para tu proyectoWhitepaper - Elige el servicio de hosting más indicado para tu proyecto
Whitepaper - Elige el servicio de hosting más indicado para tu proyecto
 
Webinar –Qué servidor elegir para tu proyecto, Cloud, Dedicados o VPS
Webinar –Qué servidor elegir para tu proyecto, Cloud, Dedicados o VPSWebinar –Qué servidor elegir para tu proyecto, Cloud, Dedicados o VPS
Webinar –Qué servidor elegir para tu proyecto, Cloud, Dedicados o VPS
 
Webinar - Instalar VMware en un servidor dedicado
Webinar - Instalar VMware en un servidor dedicadoWebinar - Instalar VMware en un servidor dedicado
Webinar - Instalar VMware en un servidor dedicado
 
Whitepaper - Como mejorar el Business Intelligence de la empresa a través de ...
Whitepaper - Como mejorar el Business Intelligence de la empresa a través de ...Whitepaper - Como mejorar el Business Intelligence de la empresa a través de ...
Whitepaper - Como mejorar el Business Intelligence de la empresa a través de ...
 

Recently uploaded

PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docxPRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
encinasm992
 
editorial de informática de los sueños.docx
editorial de informática de los sueños.docxeditorial de informática de los sueños.docx
editorial de informática de los sueños.docx
ssusere34b451
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
raquelariza02
 

Recently uploaded (20)

Herramientas informáticas. Sara Torres R.
Herramientas informáticas. Sara Torres R.Herramientas informáticas. Sara Torres R.
Herramientas informáticas. Sara Torres R.
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
taller de tablas en word para estudiantes de secundaria
taller de tablas en word para estudiantes de secundariataller de tablas en word para estudiantes de secundaria
taller de tablas en word para estudiantes de secundaria
 
¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf
 
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
 
HIGADO Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
HIGADO  Y TRAUMA HEPATICO UDABOL 2024 (3).pdfHIGADO  Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
HIGADO Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
 
herramientas informaticas mas utilizadas
herramientas informaticas mas utilizadasherramientas informaticas mas utilizadas
herramientas informaticas mas utilizadas
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
 
Introducción a la robótica con arduino..pptx
Introducción a la robótica con arduino..pptxIntroducción a la robótica con arduino..pptx
Introducción a la robótica con arduino..pptx
 
Unidad 1- Historia y Evolucion de las computadoras.pdf
Unidad 1- Historia y Evolucion de las computadoras.pdfUnidad 1- Historia y Evolucion de las computadoras.pdf
Unidad 1- Historia y Evolucion de las computadoras.pdf
 
lenguaje algebraico.pptx álgebra, trigonometria
lenguaje algebraico.pptx álgebra, trigonometrialenguaje algebraico.pptx álgebra, trigonometria
lenguaje algebraico.pptx álgebra, trigonometria
 
Presentacion y Extension de tema para Blogger.pptx
Presentacion y Extension de tema para Blogger.pptxPresentacion y Extension de tema para Blogger.pptx
Presentacion y Extension de tema para Blogger.pptx
 
Licencias para el Uso y el Desarrollo de Software
Licencias para el Uso y el Desarrollo de SoftwareLicencias para el Uso y el Desarrollo de Software
Licencias para el Uso y el Desarrollo de Software
 
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docxPRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
 
editorial de informática de los sueños.docx
editorial de informática de los sueños.docxeditorial de informática de los sueños.docx
editorial de informática de los sueños.docx
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
 
Estudio de la geometría analitica. Pptx.
Estudio de la geometría analitica. Pptx.Estudio de la geometría analitica. Pptx.
Estudio de la geometría analitica. Pptx.
 
proyectos_social_y_socioproductivos _mapas_conceptuales
proyectos_social_y_socioproductivos _mapas_conceptualesproyectos_social_y_socioproductivos _mapas_conceptuales
proyectos_social_y_socioproductivos _mapas_conceptuales
 
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
 

Webinar: Base de Datos en tiempo real con MeteorJS

  • 1. Miguel Angel Alvarez BASES DE DATOS EN TIEMPO REAL MeteorJS @midesweb @EscuelaIT
  • 2. Qué veremos hoy ▪ Índice o MeteorJS • Qué es MeteorJS • Primeros pasos o Creando un todo-list • Templates • Eventos • Colecciones, acceso a datos en tiempo real
  • 3. Bases de datos en tiempo real
  • 4. Bases de datos en tiempo real
  • 6. Meteor (MeteorJS) es un framework fullstack, basado en Javascript (NodeJS y Javascript para el navegador). - Aplicaciones multiplataforma - Web - iOS - Android - Desktop Introducción a MeteorJS Qué es Meteor
  • 7. Introducción a MeteorJS Además de ser multiplataforma, su característica más importante es la posibilidad de desarrollar aplicaciones con bases de datos en tiempo real. - El sistema proporciona los datos al cliente - Si los datos cambian, el sistema envía los datos de nuevo al cliente, sin hacer ningún tipo de programación adicional. Características
  • 9. Introducción a MeteorJS meteor create myapp cd myapp meteor npm install meteor Crear una aplicación
  • 11. Crear una aplicación todo-list - Situamos nuestros elementos de interfaz gráfica en imports/ui - Archivo .html (la vista) - Archivo .js (importa la plantilla y define el modelo) Templates https://www.meteor.com/tutorials
  • 12. Crear una aplicación todo-list Creamos colecciones directamente en la base de datos MongoDB. 1. Creamos una colección imports/api/tasks.js 2. Cargar la colección en el servidor server/main.js 3. Cargar la colección en el cliente imports/ui/body.js Ahora podemos agregar items a la colección mediante consola: meteor mongo db.tasks.insert({ text: "Hello world!", createdAt: new Date() }); Colecciones
  • 13. Crear una aplicación todo-list Creamos un formulario para crear tareas 1. Creamos el formulario en el cuerpo imports/ui/body.js 2. Definimos un evento para almacenar las tareas en el controlador del cuerpo imports/ui/body.js 3. Ordenamos las tareas por fecha Alta de tareas
  • 14. Crear una aplicación todo-list Marcar las tareas como acabadas y borrarlas. 1. Creamos el template para las tareas imports/ui/task.html a. Checkbox para definirla como completada b. Botón parar borrarla 2. Definimos manejadores de eventos en imports/ui/task.js a. Task.update() implementar actualizaciones b. Task.remove() borrados 3. Eliminamos el template de task anterior e importamos el template de task nuevo en body.js Actualizaciones y borrados
  • 15. Crear una aplicación todo-list Instalamos un diccionario reactivo para almacenar el estado. meteor add reactive-dict 1. Actualizamos template del imports/ui/body.html a. Checkbox para marcar visibilidad de las tareas completadas b. Variable para mostrar número de tareas no completadas 2. Comportamientos en imports/ui/body.js a. Importamos ReactiveDict b. Inicializamos el estado en onCreated c. Las tareas que se devuelven al templeta pueden ser unas u otras dependiento del estado d. IncompleteCount se define con el resultado de una búsqueda e. Evento para manejar cambios en el estado al activar el checkbox Gestión del estado
  • 16. Crear una aplicación todo-list Instalamos el módulo de gestión de usuarios. meteor add accounts-ui accounts-password 1. Incluimos el template de usuarios en imports/ui/body.html 2. Configuración en imports/startup/accounts-config.js 3. Incluir la configuración en el client/main.js 4. Almacenar los datos del usuario 5. Mostrar el formulario solamente si el usuario está logueado 6. Mostrar el usuario que ha creado el task Gestión de usuarios
  • 17. Crear una aplicación todo-list Quitamos el package "insecure". remove insecure 1. Redefinimos imports/api/task.js a. Importamos meteor/meteor y meteor/check b. Creamos métodos para operaciones con tasks 2. Ejecutar método insert en imports/ui/body.js 3. Ejecutar método para setChecked y remove en imports/ui/task.js Seguridad