SlideShare una empresa de Scribd logo
1 de 25
Descargar para leer sin conexión
Why the M in MEAN is a Significant
Contributor to Its Success
Presentation to NOVA Mean March 18, 2014
Jonathan M. Altman
jonathan@async.io | @async_io
https://async.io/ | https://github.com/jonathana
Tuesday, March 18, 2014
Me
•Founder, Async IO and InTheBin
•node.dc co-organizer
•Semi-regular speaker
•https://github.com/jonathana
•http://www.slideshare.net/async_io
Tuesday, March 18, 2014
I Have Never Given This
Presentation
Tuesday, March 18, 2014
4th Time Doing This Talk
•MongoDC 2011
•MongoDC 2012
•DevIgnition 2013
•NOVA Mean March, 2014
Tuesday, March 18, 2014
MongoDC 2011
•Node.js is cool
•It works well with Mongo
•Mongoose is available, but may not be buying you that much for
the overhead
•Showed with expressjs
Tuesday, March 18, 2014
MongoDC 2012
•MongoDB and nodejs are a productive combo for building apps
•With Express
•Mongoose is an easy choice
•Everyauth is a great way to do authentication
•Starter skeleton app
Tuesday, March 18, 2014
Then This Happened
•Valeri Karpov posted “The MEAN Stack: MongoDB, ExpressJS,
AngularJS and Node.js” in April 2013
•http://blog.mongodb.org/post/49262866911/the-mean-stack-
mongodb-expressjs-angularjs-and
Tuesday, March 18, 2014
DevIgnition 2013
•MEAN has “arrived”
•Covered a lot of why it is great, including the MongoDB part
•Did not get to show as much of the talk as I wanted, specifically
code
Tuesday, March 18, 2014
So Why Is Mongo Significant?
Tuesday, March 18, 2014
The “M” in MEAN
•M - MongoDB
•E - ExpressJS
•A - AngularJS
•N - Node.js
JSON(BSON)-
oriented noSQL
database engine
Tuesday, March 18, 2014
M is for MongoDB
•noSQL data storage engine
•Scalable, adaptable
•Document store of JSON (BSON)
data
•Fidelity: Angular, nodeJS, and
MongoDB all “speak” JSON
Tuesday, March 18, 2014
M is for MongoDB
•MongoDB database contains collections (tables)
•Collections contain BSON documents (“rows”),
but they are really documents
•Documents can nest other documents
•Documents in a collection can all have different
BSON keys in them
Tuesday, March 18, 2014
M is for MongoDB
[user@host ~]$ mongo
MongoDB shell version: 2.2.0
connecting to: test
> use campaign
switched to db campaign
> db.campaignusers.find({email:
"jonathan@recycli.st"})
{ "fullName" : "Jonathan", "email" :
"jonathan@recycli.st", "_id" : ObjectId
("50a40e11ea84d53c42000005"), "addMarketing" :
true, "__v" : 0 }
Tuesday, March 18, 2014
M Is Also For Mongoose
•Object Data Mapper (ODM) for MongoDB
•Costs some of the flexibility of the MongoDB
document store
•Start by using it
Tuesday, March 18, 2014
Put It Together and... MEAN it!
•Yeoman provides a great set of tools to get started
•There are also a bunch of seed repositories on
github to use. Google “MEAN github seed”
•Consider https://github.com/DaftMonk/generator-
angular-fullstack
•Wire in MongoDB
Tuesday, March 18, 2014
Tuesday, March 18, 2014
Tuesday, March 18, 2014
Example MEAN Site #1
Tuesday, March 18, 2014
Tuesday, March 18, 2014
Resources - MongoDB, Angular
• MongoDB Inc. post referencing MEAN: http://blog.mongodb.org/post/49262866911/the-mean-stack-
mongodb-expressjs-angularjs-and
• MongoDB: http://www.mongodb.org/ and the company behind MongoDB is at http://http://
www.mongodb.com/
• BSON: http://bsonspec.org/
• Mongoose: http://mongoosejs.com/
• AngularJS: http://angularjs.org/ and their tutorial at http://docs.angularjs.org/tutorial is highly recommended
• Slides from a talk at AngularDC on “Angular from Scratch”: http://www.slideshare.net/xmlilley/angular-
from-scratch
Tuesday, March 18, 2014
Resources - nodeJS, HTML5
• nodeJS: http://nodejs.org/
• npm (node package manager): https://npmjs.org/
• ExpressJS: http://expressjs.com/
• Good resource on technologies in HTML5: http://www.html5rocks.com/en/
Tuesday, March 18, 2014
Resources - Bootstrap, Yeoman
• Twitter bootstrap: http://getbootstrap.com/
• Yeoman: http://yeoman.io/
• Bower: http://bower.io/
• Grunt: http://gruntjs.com/
• Sass: http://sass-lang.com/
• Compass: http://compass-style.org/
Tuesday, March 18, 2014
Resources - DC Area Meetups
• nodeDC: http://www.meetup.com/node-dc/
• mongoDC: http://www.meetup.com/Washington-DC-MongoDB-Users-Group/
• AngularJS: http://www.meetup.com/AngularJS-DC/
• NOVA MEAN: http://www.meetup.com/NOVA-MEAN/
Tuesday, March 18, 2014
Thank you. Questions?
Tuesday, March 18, 2014
Tuesday, March 18, 2014

Más contenido relacionado

Similar a NOVA MEAN - Why the M in MEAN is a Significant Contributor to Its Success

BrightonSEO_How to create harmony between SEOs & Developers
BrightonSEO_How to create harmony between SEOs & DevelopersBrightonSEO_How to create harmony between SEOs & Developers
BrightonSEO_How to create harmony between SEOs & DevelopersSara Moccand-Sayegh
 
Pre-Aggregated Analytics And Social Feeds Using MongoDB
Pre-Aggregated Analytics And Social Feeds Using MongoDBPre-Aggregated Analytics And Social Feeds Using MongoDB
Pre-Aggregated Analytics And Social Feeds Using MongoDBRackspace
 
Lessons in Open Source from the MongooseJS ODM
Lessons in Open Source from the MongooseJS ODMLessons in Open Source from the MongooseJS ODM
Lessons in Open Source from the MongooseJS ODMValeri Karpov
 
Driving App Success Part II
Driving App Success Part IIDriving App Success Part II
Driving App Success Part IINathan Mellor
 
Social Analytics with MongoDB
Social Analytics with MongoDBSocial Analytics with MongoDB
Social Analytics with MongoDBPatrick Stokes
 
Agile Content: Lessons from Lean Startups
Agile Content: Lessons from Lean StartupsAgile Content: Lessons from Lean Startups
Agile Content: Lessons from Lean StartupsTim Frick
 
MongoDB and Our Journey from Old, Slow and Monolithic to Fast and Agile Micro...
MongoDB and Our Journey from Old, Slow and Monolithic to Fast and Agile Micro...MongoDB and Our Journey from Old, Slow and Monolithic to Fast and Agile Micro...
MongoDB and Our Journey from Old, Slow and Monolithic to Fast and Agile Micro...MongoDB
 
How to Manage Open Source Product by Github Sr. PM
How to Manage Open Source Product by Github Sr. PMHow to Manage Open Source Product by Github Sr. PM
How to Manage Open Source Product by Github Sr. PMProduct School
 
Find my tea [sync ipswich] a technical journey through new product development
Find my tea [sync ipswich] a technical journey through new product developmentFind my tea [sync ipswich] a technical journey through new product development
Find my tea [sync ipswich] a technical journey through new product developmentPaulGrenyer1
 
How to edit the core
How to edit the coreHow to edit the core
How to edit the coredmanners87
 
Seo boost supercharge your seo results
Seo boost supercharge your seo resultsSeo boost supercharge your seo results
Seo boost supercharge your seo resultsJamshaid (Jam) Hashmi
 
How I ended up touching Magento core
How I ended up touching Magento coreHow I ended up touching Magento core
How I ended up touching Magento coreAlessandro Ronchi
 
Embedded User Assistance: Third Rail or Third Way?
Embedded User Assistance: Third Rail or Third Way?Embedded User Assistance: Third Rail or Third Way?
Embedded User Assistance: Third Rail or Third Way?Steven Jong
 
Sakshi sharma resume
Sakshi sharma resumeSakshi sharma resume
Sakshi sharma resumeSakshi Sharma
 
How To Structure Your Search Team for Success
How To Structure Your Search Team for SuccessHow To Structure Your Search Team for Success
How To Structure Your Search Team for SuccessOpenSource Connections
 
Techorama 2022 - Adventures of building Promitor, an open-source product
Techorama 2022 - Adventures of building Promitor, an open-source productTechorama 2022 - Adventures of building Promitor, an open-source product
Techorama 2022 - Adventures of building Promitor, an open-source productTom Kerkhove
 
Keynote: The Phoenix Project: Lessons Learned - PuppetConf 2014
Keynote: The Phoenix Project: Lessons Learned - PuppetConf 2014Keynote: The Phoenix Project: Lessons Learned - PuppetConf 2014
Keynote: The Phoenix Project: Lessons Learned - PuppetConf 2014Puppet
 
Designing & prototyping useful apps
Designing & prototyping useful appsDesigning & prototyping useful apps
Designing & prototyping useful appsRobin De Croon
 
How Appboy’s Marketing Automation for Apps Platform Grew 40x on the ObjectRoc...
How Appboy’s Marketing Automation for Apps Platform Grew 40x on the ObjectRoc...How Appboy’s Marketing Automation for Apps Platform Grew 40x on the ObjectRoc...
How Appboy’s Marketing Automation for Apps Platform Grew 40x on the ObjectRoc...MongoDB
 

Similar a NOVA MEAN - Why the M in MEAN is a Significant Contributor to Its Success (20)

BrightonSEO_How to create harmony between SEOs & Developers
BrightonSEO_How to create harmony between SEOs & DevelopersBrightonSEO_How to create harmony between SEOs & Developers
BrightonSEO_How to create harmony between SEOs & Developers
 
Pre-Aggregated Analytics And Social Feeds Using MongoDB
Pre-Aggregated Analytics And Social Feeds Using MongoDBPre-Aggregated Analytics And Social Feeds Using MongoDB
Pre-Aggregated Analytics And Social Feeds Using MongoDB
 
Lessons in Open Source from the MongooseJS ODM
Lessons in Open Source from the MongooseJS ODMLessons in Open Source from the MongooseJS ODM
Lessons in Open Source from the MongooseJS ODM
 
Driving App Success Part II
Driving App Success Part IIDriving App Success Part II
Driving App Success Part II
 
Social Analytics with MongoDB
Social Analytics with MongoDBSocial Analytics with MongoDB
Social Analytics with MongoDB
 
Evaluation 6
Evaluation 6Evaluation 6
Evaluation 6
 
Agile Content: Lessons from Lean Startups
Agile Content: Lessons from Lean StartupsAgile Content: Lessons from Lean Startups
Agile Content: Lessons from Lean Startups
 
MongoDB and Our Journey from Old, Slow and Monolithic to Fast and Agile Micro...
MongoDB and Our Journey from Old, Slow and Monolithic to Fast and Agile Micro...MongoDB and Our Journey from Old, Slow and Monolithic to Fast and Agile Micro...
MongoDB and Our Journey from Old, Slow and Monolithic to Fast and Agile Micro...
 
How to Manage Open Source Product by Github Sr. PM
How to Manage Open Source Product by Github Sr. PMHow to Manage Open Source Product by Github Sr. PM
How to Manage Open Source Product by Github Sr. PM
 
Find my tea [sync ipswich] a technical journey through new product development
Find my tea [sync ipswich] a technical journey through new product developmentFind my tea [sync ipswich] a technical journey through new product development
Find my tea [sync ipswich] a technical journey through new product development
 
How to edit the core
How to edit the coreHow to edit the core
How to edit the core
 
Seo boost supercharge your seo results
Seo boost supercharge your seo resultsSeo boost supercharge your seo results
Seo boost supercharge your seo results
 
How I ended up touching Magento core
How I ended up touching Magento coreHow I ended up touching Magento core
How I ended up touching Magento core
 
Embedded User Assistance: Third Rail or Third Way?
Embedded User Assistance: Third Rail or Third Way?Embedded User Assistance: Third Rail or Third Way?
Embedded User Assistance: Third Rail or Third Way?
 
Sakshi sharma resume
Sakshi sharma resumeSakshi sharma resume
Sakshi sharma resume
 
How To Structure Your Search Team for Success
How To Structure Your Search Team for SuccessHow To Structure Your Search Team for Success
How To Structure Your Search Team for Success
 
Techorama 2022 - Adventures of building Promitor, an open-source product
Techorama 2022 - Adventures of building Promitor, an open-source productTechorama 2022 - Adventures of building Promitor, an open-source product
Techorama 2022 - Adventures of building Promitor, an open-source product
 
Keynote: The Phoenix Project: Lessons Learned - PuppetConf 2014
Keynote: The Phoenix Project: Lessons Learned - PuppetConf 2014Keynote: The Phoenix Project: Lessons Learned - PuppetConf 2014
Keynote: The Phoenix Project: Lessons Learned - PuppetConf 2014
 
Designing & prototyping useful apps
Designing & prototyping useful appsDesigning & prototyping useful apps
Designing & prototyping useful apps
 
How Appboy’s Marketing Automation for Apps Platform Grew 40x on the ObjectRoc...
How Appboy’s Marketing Automation for Apps Platform Grew 40x on the ObjectRoc...How Appboy’s Marketing Automation for Apps Platform Grew 40x on the ObjectRoc...
How Appboy’s Marketing Automation for Apps Platform Grew 40x on the ObjectRoc...
 

Último

DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKJago de Vreede
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)Samir Dash
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 

Último (20)

DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 

NOVA MEAN - Why the M in MEAN is a Significant Contributor to Its Success

  • 1. Why the M in MEAN is a Significant Contributor to Its Success Presentation to NOVA Mean March 18, 2014 Jonathan M. Altman jonathan@async.io | @async_io https://async.io/ | https://github.com/jonathana Tuesday, March 18, 2014
  • 2. Me •Founder, Async IO and InTheBin •node.dc co-organizer •Semi-regular speaker •https://github.com/jonathana •http://www.slideshare.net/async_io Tuesday, March 18, 2014
  • 3. I Have Never Given This Presentation Tuesday, March 18, 2014
  • 4. 4th Time Doing This Talk •MongoDC 2011 •MongoDC 2012 •DevIgnition 2013 •NOVA Mean March, 2014 Tuesday, March 18, 2014
  • 5. MongoDC 2011 •Node.js is cool •It works well with Mongo •Mongoose is available, but may not be buying you that much for the overhead •Showed with expressjs Tuesday, March 18, 2014
  • 6. MongoDC 2012 •MongoDB and nodejs are a productive combo for building apps •With Express •Mongoose is an easy choice •Everyauth is a great way to do authentication •Starter skeleton app Tuesday, March 18, 2014
  • 7. Then This Happened •Valeri Karpov posted “The MEAN Stack: MongoDB, ExpressJS, AngularJS and Node.js” in April 2013 •http://blog.mongodb.org/post/49262866911/the-mean-stack- mongodb-expressjs-angularjs-and Tuesday, March 18, 2014
  • 8. DevIgnition 2013 •MEAN has “arrived” •Covered a lot of why it is great, including the MongoDB part •Did not get to show as much of the talk as I wanted, specifically code Tuesday, March 18, 2014
  • 9. So Why Is Mongo Significant? Tuesday, March 18, 2014
  • 10. The “M” in MEAN •M - MongoDB •E - ExpressJS •A - AngularJS •N - Node.js JSON(BSON)- oriented noSQL database engine Tuesday, March 18, 2014
  • 11. M is for MongoDB •noSQL data storage engine •Scalable, adaptable •Document store of JSON (BSON) data •Fidelity: Angular, nodeJS, and MongoDB all “speak” JSON Tuesday, March 18, 2014
  • 12. M is for MongoDB •MongoDB database contains collections (tables) •Collections contain BSON documents (“rows”), but they are really documents •Documents can nest other documents •Documents in a collection can all have different BSON keys in them Tuesday, March 18, 2014
  • 13. M is for MongoDB [user@host ~]$ mongo MongoDB shell version: 2.2.0 connecting to: test > use campaign switched to db campaign > db.campaignusers.find({email: "jonathan@recycli.st"}) { "fullName" : "Jonathan", "email" : "jonathan@recycli.st", "_id" : ObjectId ("50a40e11ea84d53c42000005"), "addMarketing" : true, "__v" : 0 } Tuesday, March 18, 2014
  • 14. M Is Also For Mongoose •Object Data Mapper (ODM) for MongoDB •Costs some of the flexibility of the MongoDB document store •Start by using it Tuesday, March 18, 2014
  • 15. Put It Together and... MEAN it! •Yeoman provides a great set of tools to get started •There are also a bunch of seed repositories on github to use. Google “MEAN github seed” •Consider https://github.com/DaftMonk/generator- angular-fullstack •Wire in MongoDB Tuesday, March 18, 2014
  • 18. Example MEAN Site #1 Tuesday, March 18, 2014
  • 20. Resources - MongoDB, Angular • MongoDB Inc. post referencing MEAN: http://blog.mongodb.org/post/49262866911/the-mean-stack- mongodb-expressjs-angularjs-and • MongoDB: http://www.mongodb.org/ and the company behind MongoDB is at http://http:// www.mongodb.com/ • BSON: http://bsonspec.org/ • Mongoose: http://mongoosejs.com/ • AngularJS: http://angularjs.org/ and their tutorial at http://docs.angularjs.org/tutorial is highly recommended • Slides from a talk at AngularDC on “Angular from Scratch”: http://www.slideshare.net/xmlilley/angular- from-scratch Tuesday, March 18, 2014
  • 21. Resources - nodeJS, HTML5 • nodeJS: http://nodejs.org/ • npm (node package manager): https://npmjs.org/ • ExpressJS: http://expressjs.com/ • Good resource on technologies in HTML5: http://www.html5rocks.com/en/ Tuesday, March 18, 2014
  • 22. Resources - Bootstrap, Yeoman • Twitter bootstrap: http://getbootstrap.com/ • Yeoman: http://yeoman.io/ • Bower: http://bower.io/ • Grunt: http://gruntjs.com/ • Sass: http://sass-lang.com/ • Compass: http://compass-style.org/ Tuesday, March 18, 2014
  • 23. Resources - DC Area Meetups • nodeDC: http://www.meetup.com/node-dc/ • mongoDC: http://www.meetup.com/Washington-DC-MongoDB-Users-Group/ • AngularJS: http://www.meetup.com/AngularJS-DC/ • NOVA MEAN: http://www.meetup.com/NOVA-MEAN/ Tuesday, March 18, 2014