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

Post on 31-Aug-2014

1092 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Talk given to NOVA Mean March 18, 2014

Transcript

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

Presentation to NOVA Mean March 18, 2014Jonathan M. Altman

jonathan@async.io | @async_iohttps://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

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 ~]$ mongoMongoDB shell version: 2.2.0connecting to: test> use campaignswitched 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 - 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

top related