Slide 1

Slide 1 text

MEAN Stack

Slide 2

Slide 2 text

What is MEAN M - MongoDB E - Express.js A - AngularJS N - Node.js

Slide 3

Slide 3 text

Node.js http://nodejs.org/ Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.

Slide 4

Slide 4 text

Node.js ● Chrome JS runtime (V8) ● Event-driven ● Non-blocking ● Fast

Slide 5

Slide 5 text

Node.js ● Single Thread ○ Use child process (http://nodejs. org/api/child_process.html) ● Not easy to scale ○ Use cluster (http://nodejs.org/api/cluster.html) ○ Use node-http-proxy (https://github. com/nodejitsu/node-http-proxy)

Slide 6

Slide 6 text

Express.js http://expressjs.com/ Express is a minimal and flexible node.js web application framework, providing a robust set of features for building single and multi-page, and hybrid web applications. With a myriad of HTTP utility methods and Connect middleware at your disposal, creating a robust user-friendly API is quick and easy.

Slide 7

Slide 7 text

Express.js HTTP Server for Node.js ● Connect (http://www.senchalabs.org/connect/) ● View rendering ○ EJS (http://embeddedjs.com/) ○ Jade (http://jade-lang.com/)

Slide 8

Slide 8 text

mongoDB http://www.mongodb.org/ Agile and Scalable MongoDB (from "humongous") is an open- source document database, and the leading NoSQL database. Written in C++.

Slide 9

Slide 9 text

mongoDB NoSQL ● Distributed ● Key-value pairs ● Schema-less (JSON) ● Keep some RDBMSes’ features

Slide 10

Slide 10 text

AngularJS http://angularjs.org/ HTML is great for declaring static documents, but it falters when we try to use it for declaring dynamic views in web-applications. AngularJS lets you extend HTML vocabulary for your application. The resulting environment is extraordinarily expressive, readable, and quick to develop.

Slide 11

Slide 11 text

AngularJS ● Model-View-Whatever ● Client-side routing ● Two-way data binding ● Dependency Injection ● Testing

Slide 12

Slide 12 text

Summary ● Node.js + Express.js => Quick response server ● MongoDB => Fast read/write with JS ● AngularJS => Modern web app