Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Meteor before impact!

Meteor before impact!

Introduction to Meteor JS Platform (www.meteor.com)
Original slides made with reveal.js: http://slid.es/dasniko/meteor

Niko Köbler

June 23, 2013
Tweet

More Decks by Niko Köbler

Other Decks in Programming

Transcript

  1. QUICKSTART Install Meteor: $ c u r l h t

    t p s : / / i n s t a l l . m e t e o r . c o m | / b i n / s h Create a project: $ m e t e o r c r e a t e m y a p p Run it locally: $ c d m y a p p $ m e t e o r = > M e t e o r s e r v e r r u n n i n g o n : h t t p : / / l o c a l h o s t : 3 0 0 0 /
  2. GENERATED JS i f ( M e t e o

    r . i s C l i e n t ) { s o m e F u n c t i o n = f u n c t i o n ( ) { / / y o u r c o d e g o e s h e r e } ; . . . } i f ( M e t e o r . i s S e r v e r ) { M e t e o r . s t a r t u p ( f u n c t i o n ( ) { / / c o d e t o r u n o n s e r v e r a t s t a r t u p } ) ; . . . }
  3. FOLDER STRUCTURE / m y a p p / .

    . . / m y a p p / l i b / . . . / m y a p p / s o m e f o l d e r / . . . / m y a p p / s e r v e r / l i b / . . . / m y a p p / s e r v e r / s o m e L i b . j s / m y a p p / s e r v e r / m a i n . j s / m y a p p / c l i e n t / l i b / . . . / m y a p p / c l i e n t / s o m e L i b . j s / m y a p p / c l i e n t / m a i n . j s / m y a p p / p u b l i c / . . .
  4. SYNCHRONIZED COLLECTIONS M e s s a g e s

    = n e w M e t e o r . C o l l e c t i o n ( " m e s s a g e s " ) ; M e s s a g e s . f i n d ( ) ; M e s s a g e s . f i n d O n e ( ) ; M e s s a g e s . i n s e r t ( ) ; M e s s a g e s . u p d a t e ( ) ; M e s s a g e s . r e m o v e ( ) ; . . .
  5. ALLOW/DENY M e s s a g e s .

    a l l o w ( { i n s e r t : f u n c t i o n ( u s e r I d , m s g ) { / / o n l y l o g g e d - i n u s e r s c a n i n s e r t a n e w m e s s a g e t h a t t h e y o w n r e t u r n ( u s e r I d & & m s g . o w n e r = = u s e r I d ) ; } , f e t c h : [ ' o w n e r ' ] } ) ; M e s s a g e s . d e n y ( { r e m o v e : f u n c t i o n ( u s e r I d , m s g ) { / / c a n ' t r e m o v e l o c k e d m e s s a g e s r e t u r n m s g . l o c k e d ; } , f e t c h : [ ' l o c k e d ' ] } ) ;
  6. PUBLISH/SUBSRIBE / / s e r v e r :

    p u b l i s h t h e m e s s a g e s c o l l e c t i o n M e t e o r . p u b l i s h ( " m e s s a g e s " , f u n c t i o n ( ) { r e t u r n M e s s a g e s . f i n d ( ) ; } ) ; / / c l i e n t : s u b s c r i b e t o t h e p u b l i s h e d m e s s a g e s M e t e o r . s u b s c r i b e ( " m e s s a g e s " ) ;
  7. METHOD CALLS M e t e o r . m

    e t h o d s ( { f o o : f u n c t i o n ( a r g 1 , a r g 2 ) { / / . . d o s t u f f . . i f ( y o u w a n t t o t h r o w a n e r r o r ) t h r o w n e w M e t e o r . E r r o r ( 4 0 4 , " C a n ' t f i n d m y p a n t s " ) ; r e t u r n " s o m e r e t u r n v a l u e " ; } , b a r : f u n c t i o n ( ) { / / . . d o o t h e r s t u f f . . r e t u r n " b a z " ; } } ) ; / / a s y n c c a l l M e t e o r . c a l l ( ' f o o ' , 1 , 2 , f u n c t i o n ( e r r o r , r e s u l t ) { . . . } ) ; / / s y n c c a l l v a r r e s u l t = M e t e o r . c a l l ( ' f o o ' , 1 , 2 ) ;
  8. HANDLEBARS TEMPLATE < h e a d > < t

    i t l e > m y a p p < / t i t l e > < / h e a d > < b o d y > { { > h e l l o } } < / b o d y > < t e m p l a t e n a m e = " h e l l o " > < h 1 > H e l l o W o r l d ! < / h 1 > { { g r e e t i n g } } < i n p u t t y p e = " b u t t o n " v a l u e = " c l i c k " / > < / t e m p l a t e >
  9. LIVE UPDATE T e m p l a t e

    . h e l l o . g r e e t i n g = f u n c t i o n ( ) { r e t u r n S e s s i o n . g e t ( " w e l c o m e _ m e s s a g e " ) ; } ; / / s o m e w h e r e i n t h e c o d e . . . S e s s i o n . s e t ( " w e l c o m e _ m e s s a g e " , " W e l c o m e t o m y a p p . " ) ;
  10. ACCOUNTS $ m e t e o r a d

    d a c c o u n t s - u i $ m e t e o r a d d a c c o u n t s - * * = p a s s w o r d , f a c e b o o k , t w i t t e r , g o o g l e , g i t h u b , . . . O A u t h 2 { { l o g i n - b u t t o n s } }
  11. DEPLOYMENT ON METEOR INFRASTRUCTURE $ m e t e o

    r d e p l o y m y a p p . m e t e o r . c o m $ m e t e o r d e p l o y w w w . m y a p p . c o m ON OWN INFRASTRUCTURE $ m e t e o r b u n d l e m y a p p . t g z
  12. STRUCTURE & ARCHITECTURE MONGO DB & COLLECTIONS PUBLISH/SUBSCRIBE & METHOD

    CALLS TEMPLATING & LIVE-UPDATE ACCOUNTS & SECURITY DEPLOYMENT & PACKAGING ECOSYSTEM