SlideShare a Scribd company logo
www.edureka.co/mastering-node-js
View Mastering Node.js course details at www.edureka.co/mastering-node-js
Day In A Life Of A Node.js Developer
For Queries:
Post on Twitter @edurekaIN: #askEdureka
Post on Facebook /edurekaIN
For more details please contact us:
US : 1800 275 9730 (toll free)
INDIA : +91 88808 62004
Email Us : sales@edureka.co
Slide 2 www.edureka.co/mastering-node-js
Objectives
At the end of the session you will be able to:
Understand basics of Node.js Development
Use Node's Package Manager
Develop Server Side Applications
Create Restful APIs
Test and Debug Code
Slide 3 www.edureka.co/mastering-node-jsSlide 3
What is Node.js ?
Node.js is an open source, cross-platform runtime environment for server-side and networking applications
Node.js applications are written in JavaScript, and can be run within the Node.js runtime on OS X, Microsoft
Windows, Linux, FreeBSD, NonStop and IBM. -- Wikipedia
This is based on Google’s V8 JavaScript Engine
Slide 4 www.edureka.co/mastering-node-jsSlide 4
What is Node.js ? (Contd.)
Guess What ?
» IT’s SINGLE THREADED !!
» No worries about : race conditions, deadlocks and other problems that go with multi-threading.
» “Almost no function in Node directly performs I/O, so the process never blocks. Because nothing blocks,
less-than-expert programmers are able to develop scalable systems.” - (courtesy : nodejs.org)
Event
Loop
Event
Queue
Thread Pool
file system
network
process
other
Slide 5 www.edureka.co/mastering-node-jsSlide 5
Use-Cases of Node.js
1. Walmart executives believe that the benefit of using Node.js was
far greater than any risk in adopting a new technology
2. They re-engineered their mobile app to run on Node.js where all
the front end code gets executed on back-end
3. “We rely on services all over the world,” says Almaer (V.P Mobile
Architecture) “We do not control all of those services. Node
allows us to front all these services… and scale up very nicely.
It’s perfect for what we’re doing in mobile.”
Server Side Web Applications
1. Server Side Web Applications
Advantages
Slide 6 www.edureka.co/mastering-node-jsSlide 6
Use-Cases of Node.js (Contd.)
1. Linkedin is also leaning heavily on Node.js (Linkedin mobile and
tablet app is 95% html/web based)
2. “We’re still full-on Node. We are excited that it can scale,” says
Kiran Prasad (Head of Linkedin’s Mobile Development Team).
“Over the past few months, we’ve made performance tweaks so
we can scale even more. On four boxes, we can now handle 20
times the load we were handling before.”
Highly Scalable
1. Server Side Web Applications
2. Highly Scalable
Advantages
Slide 7 www.edureka.co/mastering-node-jsSlide 7
Use-Cases of Node.js (Contd.)
1. When he first built Voxer, Matt Ranney (Voxer’s CTO) ran a test
to see how many connections he could open on a single server.
"I just decided to open as many connections as I could, just to
see where things would fall down," Ranney says
2. "With Node, I could open, well, all of them. I couldn't open any
more connections without getting more IP addresses on my test
machine. Node uses such small amounts of memory, it's
astounding. I ran out of port numbers."
Low Memory Consumption
1. Server Side Web Applications
2. Highly Scalable
3. Low Memory Consumption
Advantages
Slide 8 www.edureka.co/mastering-node-jsSlide 8
Basics of Node.js : npm
npm used to stand for Node Package Manager. However it is not an acronym anymore. npm is not a Node.js
specific tool
npm is a registry of reusable modules and packages written by various developers
» Yes, you can publish your own npm packages
There are two ways to install npm packages :
» Locally : To use and depend on the package from your own module or project
» Globally: To use across the system, like a command line tool
Slide 9 www.edureka.co/mastering-node-jsSlide 9
1. eBay launched ql.io, a gateway for HTTP APIs, using Node.js as
the runtime stack. eBay was able to tune a regular quality
Ubuntu workstation to handle more than 120,000 active
connections per Node.js process with each connection
consuming about 2K of memory.
Advantages
Use-Cases of Node.js (Contd.)
1. Server Side Web Applications
2. Highly Scalable
3. Low Memory Consumption
4. Increase engineering clock
speed
5. Improve end user experience
Increase engineering clock speed
Improve end user experience
Slide 10 www.edureka.co/mastering-node-jsSlide 10
Node.js Developers Create Sever Side Application
Slide 11Slide 11Slide 11 www.edureka.co/mastering-node-js
 To run the server, copy the code in any folder and run on the command line: node example.js
» As you can see above, “http” is a built-in module that is shipped with node.js
var http = require('http');
http.createServer(function (req, res)
{
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello Worldn');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');
Basics of Node.js: A Simple Web Server
Slide 12 www.edureka.co/mastering-node-jsSlide 12Slide 12Slide 12
Two Way Communication : Socket.io
 Socket.io is a fast, real-time engine. It is an npm package.
 Transmitting messages and Receiving message between client and server is simple: Events.
 On server/client when sending a message use socket.emit(‘eventname’,data). “eventname” can be any string
 And data can be any data: even Binary data!
 On server/client when you want to listen to events-messages use socket.on(‘eventname’,callbackFunction).
 Where the callbackFunction is a function that accepts a Data argument : Data sent by the other party.
Slide 13 www.edureka.co/mastering-node-jsSlide 13Slide 13Slide 13
 A simple example:
//Server-side
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
server.listen(80);
app.get('/', function (req, res) {
res.sendfile(__dirname + '/index.html');
});
io.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
});
//client-side
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://localhost');
socket.on('news', function (data) {
console.log(data);
socket.emit('my other event', { my: 'data' });
});
</script>
Creating Simple Chat Application
Slide 14 www.edureka.co/mastering-node-jsSlide 14Slide 14Slide 14
 Besides ‘connect’, ‘message’ and ‘disconnect’ you can use any custom event names
 You could also have a separation of concerns by namespacing. Namespacing also means, that the same
websocket connection is used but is multiplexed
var io = require('socket.io').listen(80);
var chat = io
.of('/chat')
.on('connection', function (socket) {
socket.emit('a message', {
that: 'only'
, '/chat': 'will get'
}); });
var news = io
.of('/news')
.on('connection', function (socket) {
socket.emit('item', { news: 'item' });
});
<script>
var chat = io.connect('http://localhost/chat')
, news = io.connect('http://localhost/news');
chat.on('connect', function () {
chat.emit('hi!');
});
news.on('news', function () {
news.emit('woot');
});
</script>
Creating Simple Chat Application
Slide 15 www.edureka.co/mastering-node-jsSlide 15
Node.js Developers Use RESTful API With Node.js
Slide 16 www.edureka.co/mastering-node-jsSlide 16Slide 16Slide 16
RESTful API With Node.js
 REST stands for Representational State Transfer. It is an architecture that allows client-server communication
through a uniform interface.
 We will create a Restful Web Service with Node.js to perform CRUD operations ( create, read, update, delete )
 By convention, HTTP verbs, such as GET, POST, PUT, and DELETE are mapped to retrieving, creating,
updating, and removing the resources specified by the URL
Slide 17 www.edureka.co/mastering-node-js
DEMO
Slide 18 www.edureka.co/mastering-node-jsSlide 18
Node.js Developers Have To Debug
and Test the Codes
Slide 19 www.edureka.co/mastering-node-jsSlide 19Slide 19Slide 19
 Node.js has a built in command line debugger. The debugger is invoked by starting your application using the
debug keyword, like below :
• node debug server.js
var http = require('http');
http.createServer(function (req, res)
{
debugger;
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello Worldn');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');
Debugging in Node.js
 Breakpoints are used to stop the execution and examine the application.
 One way to add a breakpoint is by adding a line to your application where you want to put the breakpoint. This
line should contain the statement debugger;
Slide 20 www.edureka.co/mastering-node-jsSlide 20Slide 20Slide 20
TDD Flavor BDD Flavor
Unit Testing
 Test-driven development (TDD) is a
software development process that
relies on the repetition of a very
short development cycle
 BDD (Behaviour Driven Development) is
a synthesis and refinement of practices
stemming from TDD (Test Driven
Development) and ATDD (Acceptance
Test Driven Development)
Testing in Node.js
 Unit testing is a type of automated testing where you write logic to test discrete parts of your application.
Slide 21 www.edureka.co/mastering-node-jsSlide 21Slide 21Slide 21
Mocha is a feature-rich JavaScript test framework running on node.js and the browser,
making asynchronous testing simple and fun. Mocha tests run serially, allowing for flexible
and accurate reporting, while mapping uncaught exceptions to the correct test cases
Jasmine is a behavior-driven development framework for testing JavaScript code. It
does not depend on any other JavaScript frameworks. It does not require a DOM.
Chai is a BDD / TDD assertion library for node and the browser that can be delightfully
paired with any JavaScript testing framework
Testing in Node.js
Slide 22 www.edureka.co/mastering-node-js
Questions
Slide 23 www.edureka.co/mastering-node-js

More Related Content

PDF
Webinar: Front End Web Development - Trendy Web Designs Using HTML5
PDF
Develop Mobile App Using Android Lollipop
PDF
Day In A Life Of A Node.js Developer
PDF
Deep Dive into AngularJS Javascript Framework
PDF
Getting Started With AngularJS
PDF
Implementing Web Services In Java
PDF
Using Android 5.0 Lollipop
PPTX
Java/J2EE & SOA
Webinar: Front End Web Development - Trendy Web Designs Using HTML5
Develop Mobile App Using Android Lollipop
Day In A Life Of A Node.js Developer
Deep Dive into AngularJS Javascript Framework
Getting Started With AngularJS
Implementing Web Services In Java
Using Android 5.0 Lollipop
Java/J2EE & SOA

What's hot (20)

PDF
Animation And Testing In AngularJS
PDF
Design patterns 1july
PDF
Learn How to Animate your Android App
PDF
iOS Development Using Swift 2
PDF
Android development 1july
PDF
Webinar: Microsoft SharePoint-The Ultimate Enterprise Collaboration Platform
PDF
Design Patterns : Solution to Software Design Problems
PDF
Create Restful Web Application With Node.js Express Framework
PDF
Webinar: Microsoft .NET Framework : An IntelliSense Way of Web Development
PDF
Introduction to Android Development
PDF
Design Patterns : The Ultimate Blueprint for Software
PDF
Webinar: Selenium WebDriver - Automation Uncomplicated
PDF
Webinar on Angular JS titled 'Develop Responsive Single Page Application'
PPTX
Live Demo : Trending Angular JS Featues
PDF
AngularJS : Superheroic JavaScript MVW Framework
PDF
Angular JS - Develop Responsive Single Page Application
PDF
Top Web Development Frameworks Comparison: All You Need To Know
PDF
MEAN Vs MERN Stack | Detailed Comparison Between MEAN & MERN Stack
PDF
Automation Using Selenium Webdriver
PDF
How to optimize the performance of vue js large application structure
Animation And Testing In AngularJS
Design patterns 1july
Learn How to Animate your Android App
iOS Development Using Swift 2
Android development 1july
Webinar: Microsoft SharePoint-The Ultimate Enterprise Collaboration Platform
Design Patterns : Solution to Software Design Problems
Create Restful Web Application With Node.js Express Framework
Webinar: Microsoft .NET Framework : An IntelliSense Way of Web Development
Introduction to Android Development
Design Patterns : The Ultimate Blueprint for Software
Webinar: Selenium WebDriver - Automation Uncomplicated
Webinar on Angular JS titled 'Develop Responsive Single Page Application'
Live Demo : Trending Angular JS Featues
AngularJS : Superheroic JavaScript MVW Framework
Angular JS - Develop Responsive Single Page Application
Top Web Development Frameworks Comparison: All You Need To Know
MEAN Vs MERN Stack | Detailed Comparison Between MEAN & MERN Stack
Automation Using Selenium Webdriver
How to optimize the performance of vue js large application structure
Ad

Similar to Day in a life of a node.js developer (20)

PDF
NodeJS : Communication and Round Robin Way
PDF
Node JS Express: Steps to Create Restful Web App
PPT
Node js
PPTX
Introduction to Node.js
PPTX
Building Applications With the MEAN Stack
PDF
The Happy Path: Migration Strategies for Node.js
PDF
Node JS Interview Question PDF By ScholarHat
DOCX
unit 2 of Full stack web development subject
PPTX
Introduction to Node.JS
PPTX
PPTX
Nodejs
PPTX
PDF
Basic API Creation with Node.JS
ODP
Introduce about Nodejs - duyetdev.com
PDF
All You Need to Know About Using Node.pdf
DOCX
node.js interview questions and answers.
PPTX
Node js Introduction
PDF
Node.js Web Development .pdf
NodeJS : Communication and Round Robin Way
Node JS Express: Steps to Create Restful Web App
Node js
Introduction to Node.js
Building Applications With the MEAN Stack
The Happy Path: Migration Strategies for Node.js
Node JS Interview Question PDF By ScholarHat
unit 2 of Full stack web development subject
Introduction to Node.JS
Nodejs
Basic API Creation with Node.JS
Introduce about Nodejs - duyetdev.com
All You Need to Know About Using Node.pdf
node.js interview questions and answers.
Node js Introduction
Node.js Web Development .pdf
Ad

More from Edureka! (20)

PDF
What to learn during the 21 days Lockdown | Edureka
PDF
Top 10 Dying Programming Languages in 2020 | Edureka
PDF
Top 5 Trending Business Intelligence Tools | Edureka
PDF
Tableau Tutorial for Data Science | Edureka
PDF
Python Programming Tutorial | Edureka
PDF
Top 5 PMP Certifications | Edureka
PDF
Top Maven Interview Questions in 2020 | Edureka
PDF
Linux Mint Tutorial | Edureka
PDF
How to Deploy Java Web App in AWS| Edureka
PDF
Importance of Digital Marketing | Edureka
PDF
RPA in 2020 | Edureka
PDF
Email Notifications in Jenkins | Edureka
PDF
EA Algorithm in Machine Learning | Edureka
PDF
Cognitive AI Tutorial | Edureka
PDF
AWS Cloud Practitioner Tutorial | Edureka
PDF
Blue Prism Top Interview Questions | Edureka
PDF
Big Data on AWS Tutorial | Edureka
PDF
A star algorithm | A* Algorithm in Artificial Intelligence | Edureka
PDF
Kubernetes Installation on Ubuntu | Edureka
PDF
Introduction to DevOps | Edureka
What to learn during the 21 days Lockdown | Edureka
Top 10 Dying Programming Languages in 2020 | Edureka
Top 5 Trending Business Intelligence Tools | Edureka
Tableau Tutorial for Data Science | Edureka
Python Programming Tutorial | Edureka
Top 5 PMP Certifications | Edureka
Top Maven Interview Questions in 2020 | Edureka
Linux Mint Tutorial | Edureka
How to Deploy Java Web App in AWS| Edureka
Importance of Digital Marketing | Edureka
RPA in 2020 | Edureka
Email Notifications in Jenkins | Edureka
EA Algorithm in Machine Learning | Edureka
Cognitive AI Tutorial | Edureka
AWS Cloud Practitioner Tutorial | Edureka
Blue Prism Top Interview Questions | Edureka
Big Data on AWS Tutorial | Edureka
A star algorithm | A* Algorithm in Artificial Intelligence | Edureka
Kubernetes Installation on Ubuntu | Edureka
Introduction to DevOps | Edureka

Recently uploaded (20)

PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
Big Data Technologies - Introduction.pptx
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Electronic commerce courselecture one. Pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPT
Teaching material agriculture food technology
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
Empathic Computing: Creating Shared Understanding
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
A Presentation on Artificial Intelligence
PPTX
Cloud computing and distributed systems.
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Dropbox Q2 2025 Financial Results & Investor Presentation
Encapsulation_ Review paper, used for researhc scholars
Big Data Technologies - Introduction.pptx
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Chapter 3 Spatial Domain Image Processing.pdf
Electronic commerce courselecture one. Pdf
Digital-Transformation-Roadmap-for-Companies.pptx
Teaching material agriculture food technology
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Empathic Computing: Creating Shared Understanding
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
NewMind AI Monthly Chronicles - July 2025
NewMind AI Weekly Chronicles - August'25 Week I
A Presentation on Artificial Intelligence
Cloud computing and distributed systems.
Review of recent advances in non-invasive hemoglobin estimation
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...

Day in a life of a node.js developer

  • 1. www.edureka.co/mastering-node-js View Mastering Node.js course details at www.edureka.co/mastering-node-js Day In A Life Of A Node.js Developer For Queries: Post on Twitter @edurekaIN: #askEdureka Post on Facebook /edurekaIN For more details please contact us: US : 1800 275 9730 (toll free) INDIA : +91 88808 62004 Email Us : sales@edureka.co
  • 2. Slide 2 www.edureka.co/mastering-node-js Objectives At the end of the session you will be able to: Understand basics of Node.js Development Use Node's Package Manager Develop Server Side Applications Create Restful APIs Test and Debug Code
  • 3. Slide 3 www.edureka.co/mastering-node-jsSlide 3 What is Node.js ? Node.js is an open source, cross-platform runtime environment for server-side and networking applications Node.js applications are written in JavaScript, and can be run within the Node.js runtime on OS X, Microsoft Windows, Linux, FreeBSD, NonStop and IBM. -- Wikipedia This is based on Google’s V8 JavaScript Engine
  • 4. Slide 4 www.edureka.co/mastering-node-jsSlide 4 What is Node.js ? (Contd.) Guess What ? » IT’s SINGLE THREADED !! » No worries about : race conditions, deadlocks and other problems that go with multi-threading. » “Almost no function in Node directly performs I/O, so the process never blocks. Because nothing blocks, less-than-expert programmers are able to develop scalable systems.” - (courtesy : nodejs.org) Event Loop Event Queue Thread Pool file system network process other
  • 5. Slide 5 www.edureka.co/mastering-node-jsSlide 5 Use-Cases of Node.js 1. Walmart executives believe that the benefit of using Node.js was far greater than any risk in adopting a new technology 2. They re-engineered their mobile app to run on Node.js where all the front end code gets executed on back-end 3. “We rely on services all over the world,” says Almaer (V.P Mobile Architecture) “We do not control all of those services. Node allows us to front all these services… and scale up very nicely. It’s perfect for what we’re doing in mobile.” Server Side Web Applications 1. Server Side Web Applications Advantages
  • 6. Slide 6 www.edureka.co/mastering-node-jsSlide 6 Use-Cases of Node.js (Contd.) 1. Linkedin is also leaning heavily on Node.js (Linkedin mobile and tablet app is 95% html/web based) 2. “We’re still full-on Node. We are excited that it can scale,” says Kiran Prasad (Head of Linkedin’s Mobile Development Team). “Over the past few months, we’ve made performance tweaks so we can scale even more. On four boxes, we can now handle 20 times the load we were handling before.” Highly Scalable 1. Server Side Web Applications 2. Highly Scalable Advantages
  • 7. Slide 7 www.edureka.co/mastering-node-jsSlide 7 Use-Cases of Node.js (Contd.) 1. When he first built Voxer, Matt Ranney (Voxer’s CTO) ran a test to see how many connections he could open on a single server. "I just decided to open as many connections as I could, just to see where things would fall down," Ranney says 2. "With Node, I could open, well, all of them. I couldn't open any more connections without getting more IP addresses on my test machine. Node uses such small amounts of memory, it's astounding. I ran out of port numbers." Low Memory Consumption 1. Server Side Web Applications 2. Highly Scalable 3. Low Memory Consumption Advantages
  • 8. Slide 8 www.edureka.co/mastering-node-jsSlide 8 Basics of Node.js : npm npm used to stand for Node Package Manager. However it is not an acronym anymore. npm is not a Node.js specific tool npm is a registry of reusable modules and packages written by various developers » Yes, you can publish your own npm packages There are two ways to install npm packages : » Locally : To use and depend on the package from your own module or project » Globally: To use across the system, like a command line tool
  • 9. Slide 9 www.edureka.co/mastering-node-jsSlide 9 1. eBay launched ql.io, a gateway for HTTP APIs, using Node.js as the runtime stack. eBay was able to tune a regular quality Ubuntu workstation to handle more than 120,000 active connections per Node.js process with each connection consuming about 2K of memory. Advantages Use-Cases of Node.js (Contd.) 1. Server Side Web Applications 2. Highly Scalable 3. Low Memory Consumption 4. Increase engineering clock speed 5. Improve end user experience Increase engineering clock speed Improve end user experience
  • 10. Slide 10 www.edureka.co/mastering-node-jsSlide 10 Node.js Developers Create Sever Side Application
  • 11. Slide 11Slide 11Slide 11 www.edureka.co/mastering-node-js  To run the server, copy the code in any folder and run on the command line: node example.js » As you can see above, “http” is a built-in module that is shipped with node.js var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello Worldn'); }).listen(1337, '127.0.0.1'); console.log('Server running at http://127.0.0.1:1337/'); Basics of Node.js: A Simple Web Server
  • 12. Slide 12 www.edureka.co/mastering-node-jsSlide 12Slide 12Slide 12 Two Way Communication : Socket.io  Socket.io is a fast, real-time engine. It is an npm package.  Transmitting messages and Receiving message between client and server is simple: Events.  On server/client when sending a message use socket.emit(‘eventname’,data). “eventname” can be any string  And data can be any data: even Binary data!  On server/client when you want to listen to events-messages use socket.on(‘eventname’,callbackFunction).  Where the callbackFunction is a function that accepts a Data argument : Data sent by the other party.
  • 13. Slide 13 www.edureka.co/mastering-node-jsSlide 13Slide 13Slide 13  A simple example: //Server-side var app = require('express')(); var server = require('http').Server(app); var io = require('socket.io')(server); server.listen(80); app.get('/', function (req, res) { res.sendfile(__dirname + '/index.html'); }); io.on('connection', function (socket) { socket.emit('news', { hello: 'world' }); socket.on('my other event', function (data) { console.log(data); }); }); //client-side <script src="/socket.io/socket.io.js"></script> <script> var socket = io.connect('http://localhost'); socket.on('news', function (data) { console.log(data); socket.emit('my other event', { my: 'data' }); }); </script> Creating Simple Chat Application
  • 14. Slide 14 www.edureka.co/mastering-node-jsSlide 14Slide 14Slide 14  Besides ‘connect’, ‘message’ and ‘disconnect’ you can use any custom event names  You could also have a separation of concerns by namespacing. Namespacing also means, that the same websocket connection is used but is multiplexed var io = require('socket.io').listen(80); var chat = io .of('/chat') .on('connection', function (socket) { socket.emit('a message', { that: 'only' , '/chat': 'will get' }); }); var news = io .of('/news') .on('connection', function (socket) { socket.emit('item', { news: 'item' }); }); <script> var chat = io.connect('http://localhost/chat') , news = io.connect('http://localhost/news'); chat.on('connect', function () { chat.emit('hi!'); }); news.on('news', function () { news.emit('woot'); }); </script> Creating Simple Chat Application
  • 15. Slide 15 www.edureka.co/mastering-node-jsSlide 15 Node.js Developers Use RESTful API With Node.js
  • 16. Slide 16 www.edureka.co/mastering-node-jsSlide 16Slide 16Slide 16 RESTful API With Node.js  REST stands for Representational State Transfer. It is an architecture that allows client-server communication through a uniform interface.  We will create a Restful Web Service with Node.js to perform CRUD operations ( create, read, update, delete )  By convention, HTTP verbs, such as GET, POST, PUT, and DELETE are mapped to retrieving, creating, updating, and removing the resources specified by the URL
  • 18. Slide 18 www.edureka.co/mastering-node-jsSlide 18 Node.js Developers Have To Debug and Test the Codes
  • 19. Slide 19 www.edureka.co/mastering-node-jsSlide 19Slide 19Slide 19  Node.js has a built in command line debugger. The debugger is invoked by starting your application using the debug keyword, like below : • node debug server.js var http = require('http'); http.createServer(function (req, res) { debugger; res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello Worldn'); }).listen(1337, '127.0.0.1'); console.log('Server running at http://127.0.0.1:1337/'); Debugging in Node.js  Breakpoints are used to stop the execution and examine the application.  One way to add a breakpoint is by adding a line to your application where you want to put the breakpoint. This line should contain the statement debugger;
  • 20. Slide 20 www.edureka.co/mastering-node-jsSlide 20Slide 20Slide 20 TDD Flavor BDD Flavor Unit Testing  Test-driven development (TDD) is a software development process that relies on the repetition of a very short development cycle  BDD (Behaviour Driven Development) is a synthesis and refinement of practices stemming from TDD (Test Driven Development) and ATDD (Acceptance Test Driven Development) Testing in Node.js  Unit testing is a type of automated testing where you write logic to test discrete parts of your application.
  • 21. Slide 21 www.edureka.co/mastering-node-jsSlide 21Slide 21Slide 21 Mocha is a feature-rich JavaScript test framework running on node.js and the browser, making asynchronous testing simple and fun. Mocha tests run serially, allowing for flexible and accurate reporting, while mapping uncaught exceptions to the correct test cases Jasmine is a behavior-driven development framework for testing JavaScript code. It does not depend on any other JavaScript frameworks. It does not require a DOM. Chai is a BDD / TDD assertion library for node and the browser that can be delightfully paired with any JavaScript testing framework Testing in Node.js