SlideShare a Scribd company logo
Getting Started with MEAN Stack
GETTING STARTED WITH MEAN STACK
• Node.js has one of the biggest tech communities behind it and as a result it also has a colossal amount of toolset to
choose from for whatever project you are working on.
• Small tools are great but what happens when you are building a large scale web application and you plan to maintain it
for a long time?
GETTING STARTED WITH MEAN STACK
• MEAN stack comes to the rescue.
• MEAN stands for MongoDB, Express.js, Angular.js, Node.js.
• You see, all these are small tools that people have already built and if you put them together you get an amazingly
productive and scalable fullstack framework to build your node.js application.
GETTING STARTED WITH MEAN STACK
Choosing The Right Tool
• Now that you know what the MEAN really is, you can just go ahead and build your own stack using the underlying tools.
• But do not forget that having a community as big as the Node.js community, there is always a small chance that whatever
you are building, there is probably the same or at least a similar tool already built by someone else.
• So, a rule of thumb, when working on a Node.js based project, is to look it up on npm (the Node.js dependency/project
manager) first.
• If you search for mean on npm you will find a lot of boilerplates that you can choose from.
• I personally prefer meanjs since it has some really awesome maintainers and comes packaged with a lot of cool features
out of the box. You can read more about it on their official website.
GETTING STARTED WITH MEAN STACK
Getting Started
• You need to have some tools installed prior to diving into writing code. You need to have –
• Node.js and npm installed.
• MongoDB installed.
• Bower installed for managing our frontend libraries.
• Grunt installed as our build tool.
• Once you have everything, fire up a terminal window and run the following command to clone the repository using git.
Then cd into the directory.
$ git clone https://github.com/meanjs/mean.git meanjs
$ cd meanjs
• Now we have to install all the dependencies using npm.
$ npm install
• That is it, you’re ready to go. Now simply run $ grunt before you open up a browser and navigate to http://localhost:3000.
On that webpage, you can play around the sample articles feature.
GETTING STARTED WITH MEAN STACK
• A Closer Look
• Now that we have our stack ready and our application running, we are ready to dive into the code.
• The folder structure is pretty intuitive. We have app/ directory where all our backend code reside and public/ for all our frontend
code.
• config/ is where all our application’s configuration and environment based settings go and tests/ is for the test files.
• Mean.js follows a very modular architecture.
• It treats each feature as a module and each module has its backend and frontend components.
• Take a look at the codes inside, it has a built in module for user management and articles that you can follow if you need a sample. In the
backend, you get controller, model, view and routes for the article module. In the frontend you have controller, service and view. Of
course, all the components come with built-in tests.
GETTING STARTED WITH MEAN STACK
Scaffolding
• One of the most handy features of mean.js is its command line generator tool.
• It is built on yeoman and packed with very useful commands that will help you quickly scaffold a base for your
modules/features.
• To use it, we need yeoman and the meanjs-generator installed.
• If you are on your development machine, I suggest installing it globally so that you can take advantage of it for every
project. Run the following commands –
$ npm install -g yo
$ npm install -g generator-meanjs
• Note: You might need sudo to install packages globally
GETTING STARTED WITH MEAN STACK
• Run the following command to create a new module for posting small statuses.
$ yo meanjs:crud-module status
• You will be asked a few questions.
• First, if you want css, directives etc. with the frontend component. For this quick demo, we do not need any of those so
just press enter.
• Second, if you want this module to be added in the top menu bar, write ‘Y’ and press enter.
• Third, what should the name on the menu be? Simply name it ‘Status’ and press enter.
• Now you should see an output similar to the following –
GETTING STARTED WITH MEAN STACK
create app/controllers/statuses.server.controller.js create app/models/status.server.model.js
create app/routes/statuses.server.routes.js create app/tests/status.server.model.test.js
create public/modules/statuses/config/statuses.client.routes.js
create public/modules/statuses/controllers/statuses.client.controller.js
create public/modules/statuses/services/statuses.client.service.js
create public/modules/statuses/tests/statuses.client.controller.test.js
create public/modules/statuses/views/create-status.client.view.html
create public/modules/statuses/views/edit-status.client.view.html
create public/modules/statuses/views/list-statuses.client.view.html
create public/modules/statuses/views/view-status.client.view.html
create public/modules/statuses/statuses.client.module.js
• That is it, you can now visit http://localhost:3000/#!/statuses and create, update and delete statuses. It is that simple.
GETTING STARTED WITH MEAN STACK
• You may not always need to create a full fledged crud module for every feature and MEAN.js has that covered too.
• You can just scaffold a standalone backend controller or a frontend angular service using the generator.
//create a backend controller
$ yo meanjs:express-controller <controller-name>
//create an angular.js service
$ yo meanjs:angular-service <service-name>
GETTING STARTED WITH MEAN STACK
What’s Next?
• I bet you are already impressed with the productivity of MEAN.js and I encourage you to take a look at their official
documentation to find out more about it is strengths.
• Make something small at first, an issue tracker or a bookmark manager.
• You will learn many things on your way.
• We will also be covering more ground on this topic so check back soon.

More Related Content

Similar to Getting Started with MEAN Stack (20)

PDF
Building Scalable Web Applications with MEAN Stack Services
CMARIX TechnoLabs
 
PDF
Mean Stack
Shravan Vishwakarma
 
ODP
Getting Started With Mean Stack
Knoldus Inc.
 
PPTX
MEAN STACK Course in Delhi
APTRON
 
PDF
Why Should You Choose MEAN Stack Development for Web Apps.pdf
christiemarie4
 
PDF
Why Choose MEAN Stack for Your Web Development Project?
Neil Johnson
 
PPTX
Mean Stack Course in Gurgaon.pptx
APTRON Gurgaon
 
PPTX
Building Modern Web Apps with MEAN Stack
Suresh Patidar
 
PPTX
Mean PPT
Harendra Singh Bisht
 
PPTX
Overview of MEAN Stack development
CETPA
 
PPT
Get MEAN! Node.js and the MEAN stack
Nicholas McClay
 
PPTX
The mean stack
faizrashid1995
 
PDF
MEAN Stack vs MERN Stack Development
Meanstack Developer
 
PDF
Mean Stack Development Full Course
Instaily Academy
 
PPTX
Count on the MEAN Stack for A Winning Digital Experience
75waytechnologies
 
PDF
Why is mean such a popular technology for modern web app development
OnGraph Technologies Pvt. Ltd.
 
PDF
MEAN vs MERN Stack: A Comprehensive Comparison
Bestpeers1
 
DOCX
Becoming a MEAN Stack Developer_ A Step-by-Step Guide
CMARIX TechnoLabs
 
PPTX
MEAN stack
Iryney Baran
 
PPTX
Introduction to MEAN Stack What it is and How it Works.pptx
QuickwayInfoSystems3
 
Building Scalable Web Applications with MEAN Stack Services
CMARIX TechnoLabs
 
Getting Started With Mean Stack
Knoldus Inc.
 
MEAN STACK Course in Delhi
APTRON
 
Why Should You Choose MEAN Stack Development for Web Apps.pdf
christiemarie4
 
Why Choose MEAN Stack for Your Web Development Project?
Neil Johnson
 
Mean Stack Course in Gurgaon.pptx
APTRON Gurgaon
 
Building Modern Web Apps with MEAN Stack
Suresh Patidar
 
Overview of MEAN Stack development
CETPA
 
Get MEAN! Node.js and the MEAN stack
Nicholas McClay
 
The mean stack
faizrashid1995
 
MEAN Stack vs MERN Stack Development
Meanstack Developer
 
Mean Stack Development Full Course
Instaily Academy
 
Count on the MEAN Stack for A Winning Digital Experience
75waytechnologies
 
Why is mean such a popular technology for modern web app development
OnGraph Technologies Pvt. Ltd.
 
MEAN vs MERN Stack: A Comprehensive Comparison
Bestpeers1
 
Becoming a MEAN Stack Developer_ A Step-by-Step Guide
CMARIX TechnoLabs
 
MEAN stack
Iryney Baran
 
Introduction to MEAN Stack What it is and How it Works.pptx
QuickwayInfoSystems3
 

More from VEXXHOST Private Cloud (17)

PPTX
10 Essential Laravel 4 Packages Everyone Should Use.pptx
VEXXHOST Private Cloud
 
PPTX
How To Install Rails & Nginx with Passenger on Ubuntu
VEXXHOST Private Cloud
 
PPTX
How To Create a SSL Certificate on Nginx for Ubuntu.pptx
VEXXHOST Private Cloud
 
PPTX
How to Add Swap on Ubuntu
VEXXHOST Private Cloud
 
PPTX
How To Securely Set Up Shipyard 2.0.10 with TLS on CoreOS
VEXXHOST Private Cloud
 
PPTX
Fixing 403 Forbidden Nginx Errors
VEXXHOST Private Cloud
 
PPTX
WordPress App on Ubuntu 14.04 LTS
VEXXHOST Private Cloud
 
PPTX
How to deploy a MariaDB Galera cluster on Ubuntu 14.04
VEXXHOST Private Cloud
 
PPTX
How To Mitigate & Fix OpenSSL Heartbeat on CentOS or Ubuntu
VEXXHOST Private Cloud
 
PPTX
How To Install Ruby on Rails on Ubuntu
VEXXHOST Private Cloud
 
PPTX
How To Run Nginx in a Docker Container on Ubuntu 16.04
VEXXHOST Private Cloud
 
PPTX
How To Install & Configure Varnish with Apache on Ubuntu
VEXXHOST Private Cloud
 
PPTX
CentOS 6 to CentOS 7 Upgrade Procedure
VEXXHOST Private Cloud
 
PPTX
How To Deploy a Clojure Web Application on Ubuntu 14.04
VEXXHOST Private Cloud
 
PPTX
How to setup OpenVPN Server and Client on Ubuntu 14.04
VEXXHOST Private Cloud
 
PPTX
How To Setup Highly Available Web Servers with Keepalived & Floating IPs on U...
VEXXHOST Private Cloud
 
PPTX
How To Install GitLab As Your Private GitHub Clone
VEXXHOST Private Cloud
 
10 Essential Laravel 4 Packages Everyone Should Use.pptx
VEXXHOST Private Cloud
 
How To Install Rails & Nginx with Passenger on Ubuntu
VEXXHOST Private Cloud
 
How To Create a SSL Certificate on Nginx for Ubuntu.pptx
VEXXHOST Private Cloud
 
How to Add Swap on Ubuntu
VEXXHOST Private Cloud
 
How To Securely Set Up Shipyard 2.0.10 with TLS on CoreOS
VEXXHOST Private Cloud
 
Fixing 403 Forbidden Nginx Errors
VEXXHOST Private Cloud
 
WordPress App on Ubuntu 14.04 LTS
VEXXHOST Private Cloud
 
How to deploy a MariaDB Galera cluster on Ubuntu 14.04
VEXXHOST Private Cloud
 
How To Mitigate & Fix OpenSSL Heartbeat on CentOS or Ubuntu
VEXXHOST Private Cloud
 
How To Install Ruby on Rails on Ubuntu
VEXXHOST Private Cloud
 
How To Run Nginx in a Docker Container on Ubuntu 16.04
VEXXHOST Private Cloud
 
How To Install & Configure Varnish with Apache on Ubuntu
VEXXHOST Private Cloud
 
CentOS 6 to CentOS 7 Upgrade Procedure
VEXXHOST Private Cloud
 
How To Deploy a Clojure Web Application on Ubuntu 14.04
VEXXHOST Private Cloud
 
How to setup OpenVPN Server and Client on Ubuntu 14.04
VEXXHOST Private Cloud
 
How To Setup Highly Available Web Servers with Keepalived & Floating IPs on U...
VEXXHOST Private Cloud
 
How To Install GitLab As Your Private GitHub Clone
VEXXHOST Private Cloud
 
Ad

Recently uploaded (20)

PPTX
B2C EXTRANET | EXTRANET WEBSITE | EXTRANET INTEGRATION
philipnathen82
 
PPTX
Automatic_Iperf_Log_Result_Excel_visual_v2.pptx
Chen-Chih Lee
 
PDF
>Nitro Pro Crack 14.36.1.0 + Keygen Free Download [Latest]
utfefguu
 
PPTX
Seamless-Image-Conversion-From-Raster-to-wrt-rtx-rtx.pptx
Quick Conversion Services
 
PPTX
IDM Crack with Internet Download Manager 6.42 [Latest 2025]
HyperPc soft
 
PDF
AWS Consulting Services: Empowering Digital Transformation with Nlineaxis
Nlineaxis IT Solutions Pvt Ltd
 
PPTX
IObit Driver Booster Pro 12.4-12.5 license keys 2025-2026
chaudhryakashoo065
 
PDF
Alur Perkembangan Software dan Jaringan Komputer
ssuser754303
 
PDF
Why Edge Computing Matters in Mobile Application Tech.pdf
IMG Global Infotech
 
PDF
TEASMA: A Practical Methodology for Test Adequacy Assessment of Deep Neural N...
Lionel Briand
 
PPTX
Avast Premium Security crack 25.5.6162 + License Key 2025
HyperPc soft
 
PDF
Building scalbale cloud native apps with .NET 8
GillesMathieu10
 
PPTX
CONCEPT OF PROGRAMMING in language .pptx
tamim41
 
PPTX
declaration of Variables and constants.pptx
meemee7378
 
PDF
IDM Crack with Internet Download Manager 6.42 Build 41
utfefguu
 
PDF
Laboratory Workflows Digitalized and live in 90 days with Scifeon´s SAPPA P...
info969686
 
PDF
Cloud computing Lec 02 - virtualization.pdf
asokawennawatte
 
PDF
Automated Testing and Safety Analysis of Deep Neural Networks
Lionel Briand
 
PDF
Designing Accessible Content Blocks (1).pdf
jaclynmennie1
 
PDF
Telemedicine App Development_ Key Factors to Consider for Your Healthcare Ven...
Mobilityinfotech
 
B2C EXTRANET | EXTRANET WEBSITE | EXTRANET INTEGRATION
philipnathen82
 
Automatic_Iperf_Log_Result_Excel_visual_v2.pptx
Chen-Chih Lee
 
>Nitro Pro Crack 14.36.1.0 + Keygen Free Download [Latest]
utfefguu
 
Seamless-Image-Conversion-From-Raster-to-wrt-rtx-rtx.pptx
Quick Conversion Services
 
IDM Crack with Internet Download Manager 6.42 [Latest 2025]
HyperPc soft
 
AWS Consulting Services: Empowering Digital Transformation with Nlineaxis
Nlineaxis IT Solutions Pvt Ltd
 
IObit Driver Booster Pro 12.4-12.5 license keys 2025-2026
chaudhryakashoo065
 
Alur Perkembangan Software dan Jaringan Komputer
ssuser754303
 
Why Edge Computing Matters in Mobile Application Tech.pdf
IMG Global Infotech
 
TEASMA: A Practical Methodology for Test Adequacy Assessment of Deep Neural N...
Lionel Briand
 
Avast Premium Security crack 25.5.6162 + License Key 2025
HyperPc soft
 
Building scalbale cloud native apps with .NET 8
GillesMathieu10
 
CONCEPT OF PROGRAMMING in language .pptx
tamim41
 
declaration of Variables and constants.pptx
meemee7378
 
IDM Crack with Internet Download Manager 6.42 Build 41
utfefguu
 
Laboratory Workflows Digitalized and live in 90 days with Scifeon´s SAPPA P...
info969686
 
Cloud computing Lec 02 - virtualization.pdf
asokawennawatte
 
Automated Testing and Safety Analysis of Deep Neural Networks
Lionel Briand
 
Designing Accessible Content Blocks (1).pdf
jaclynmennie1
 
Telemedicine App Development_ Key Factors to Consider for Your Healthcare Ven...
Mobilityinfotech
 
Ad

Getting Started with MEAN Stack

  • 2. GETTING STARTED WITH MEAN STACK • Node.js has one of the biggest tech communities behind it and as a result it also has a colossal amount of toolset to choose from for whatever project you are working on. • Small tools are great but what happens when you are building a large scale web application and you plan to maintain it for a long time?
  • 3. GETTING STARTED WITH MEAN STACK • MEAN stack comes to the rescue. • MEAN stands for MongoDB, Express.js, Angular.js, Node.js. • You see, all these are small tools that people have already built and if you put them together you get an amazingly productive and scalable fullstack framework to build your node.js application.
  • 4. GETTING STARTED WITH MEAN STACK Choosing The Right Tool • Now that you know what the MEAN really is, you can just go ahead and build your own stack using the underlying tools. • But do not forget that having a community as big as the Node.js community, there is always a small chance that whatever you are building, there is probably the same or at least a similar tool already built by someone else. • So, a rule of thumb, when working on a Node.js based project, is to look it up on npm (the Node.js dependency/project manager) first. • If you search for mean on npm you will find a lot of boilerplates that you can choose from. • I personally prefer meanjs since it has some really awesome maintainers and comes packaged with a lot of cool features out of the box. You can read more about it on their official website.
  • 5. GETTING STARTED WITH MEAN STACK Getting Started • You need to have some tools installed prior to diving into writing code. You need to have – • Node.js and npm installed. • MongoDB installed. • Bower installed for managing our frontend libraries. • Grunt installed as our build tool. • Once you have everything, fire up a terminal window and run the following command to clone the repository using git. Then cd into the directory. $ git clone https://github.com/meanjs/mean.git meanjs $ cd meanjs • Now we have to install all the dependencies using npm. $ npm install • That is it, you’re ready to go. Now simply run $ grunt before you open up a browser and navigate to http://localhost:3000. On that webpage, you can play around the sample articles feature.
  • 6. GETTING STARTED WITH MEAN STACK • A Closer Look • Now that we have our stack ready and our application running, we are ready to dive into the code. • The folder structure is pretty intuitive. We have app/ directory where all our backend code reside and public/ for all our frontend code. • config/ is where all our application’s configuration and environment based settings go and tests/ is for the test files. • Mean.js follows a very modular architecture. • It treats each feature as a module and each module has its backend and frontend components. • Take a look at the codes inside, it has a built in module for user management and articles that you can follow if you need a sample. In the backend, you get controller, model, view and routes for the article module. In the frontend you have controller, service and view. Of course, all the components come with built-in tests.
  • 7. GETTING STARTED WITH MEAN STACK Scaffolding • One of the most handy features of mean.js is its command line generator tool. • It is built on yeoman and packed with very useful commands that will help you quickly scaffold a base for your modules/features. • To use it, we need yeoman and the meanjs-generator installed. • If you are on your development machine, I suggest installing it globally so that you can take advantage of it for every project. Run the following commands – $ npm install -g yo $ npm install -g generator-meanjs • Note: You might need sudo to install packages globally
  • 8. GETTING STARTED WITH MEAN STACK • Run the following command to create a new module for posting small statuses. $ yo meanjs:crud-module status • You will be asked a few questions. • First, if you want css, directives etc. with the frontend component. For this quick demo, we do not need any of those so just press enter. • Second, if you want this module to be added in the top menu bar, write ‘Y’ and press enter. • Third, what should the name on the menu be? Simply name it ‘Status’ and press enter. • Now you should see an output similar to the following –
  • 9. GETTING STARTED WITH MEAN STACK create app/controllers/statuses.server.controller.js create app/models/status.server.model.js create app/routes/statuses.server.routes.js create app/tests/status.server.model.test.js create public/modules/statuses/config/statuses.client.routes.js create public/modules/statuses/controllers/statuses.client.controller.js create public/modules/statuses/services/statuses.client.service.js create public/modules/statuses/tests/statuses.client.controller.test.js create public/modules/statuses/views/create-status.client.view.html create public/modules/statuses/views/edit-status.client.view.html create public/modules/statuses/views/list-statuses.client.view.html create public/modules/statuses/views/view-status.client.view.html create public/modules/statuses/statuses.client.module.js • That is it, you can now visit http://localhost:3000/#!/statuses and create, update and delete statuses. It is that simple.
  • 10. GETTING STARTED WITH MEAN STACK • You may not always need to create a full fledged crud module for every feature and MEAN.js has that covered too. • You can just scaffold a standalone backend controller or a frontend angular service using the generator. //create a backend controller $ yo meanjs:express-controller <controller-name> //create an angular.js service $ yo meanjs:angular-service <service-name>
  • 11. GETTING STARTED WITH MEAN STACK What’s Next? • I bet you are already impressed with the productivity of MEAN.js and I encourage you to take a look at their official documentation to find out more about it is strengths. • Make something small at first, an issue tracker or a bookmark manager. • You will learn many things on your way. • We will also be covering more ground on this topic so check back soon.