SlideShare a Scribd company logo
1 of 30
Download to read offline
1
Node.js Tools Ecosystem
Michael Byrne, MultiValue Evangelist
2
Abstract
 Node.js is a powerful JavaScript platform that helps you build server
applications. It has become a popular option for building network
applications and web servers. Explore how Node.js interacts with the
multitude of add-on open source modules to build a modern web
application in no time.
©2015 Rocket Software, Inc. All Rights Reserved.
3
Agenda
 Intro to Node.js
 Code editors
 Node Package Manager (npm)
 Web server: Express, koa, hapi
 Template engines: Jade / EJS
 Client-side packaging: Bower / Browserify
 Task runners: Grunt / Gulp
 Scaffolding tools: Yo (Yeoman)
 Testing: Jasmine, Mocha, Karma
©2015 Rocket Software, Inc. All Rights Reserved.
4
What is Node.js?
Platform built on Google V8 JavaScript engine
• Open-source under BSD license
• Extremely fast
• Focused on web; proficient with HTTP, DNS, TCP, etc.
Easily build fast, scalable network applications
Asynchronous, event-driven, non-blocking I/O model
Large developer community
©2015 Rocket Software, Inc. All Rights Reserved.
5
Why Are JavaScript and Node.js Relevant?
Incredibly fast – non-blocking programming
Dynamic objects and prototypal inheritance
JavaScript is the internet
Consistent language across stack
Tooling and community
©2015 Rocket Software, Inc. All Rights Reserved.
6
What Enterprises Say
©2015 Rocket Software, Inc. All Rights Reserved.
“Node.js powers our web applications and has allowed our teams
to move much faster in bringing their designs to life”
Jeff Harrell – Director of Engineering at PayPal
“Node’s evented I/O model freed us from worrying about locking and
concurrency issues that are common with multithreaded async I/O”
Subbu Allarmarju – Principal Member, Technical Staff at ebay
“On the server side, our entire mobile software stack is completely
built in Node. One reason wasscale. The second is Node showed us
huge performance gains.”
Kiran Prasad – Mobile Development Lead at LinkedIn
Source: http://apmblog.dynatrace.com/2015/04/09/node-js-is-hitting-the-big-time-in-enterprise-markets/
7
Sample Node.js Architecture
©2015 Rocket Software, Inc. All Rights Reserved.
Web API HTML
MV REST Server
MV DB Server
Web Server
8
Node.js Simple Web Server
©2015 Rocket Software, Inc. All Rights Reserved.
server.js
> Node server.js
Server running at http://127.0.0.1:3000/
9
Code Editors for Web Development
©2015 Rocket Software, Inc. All Rights Reserved.
Brackets
(Free)
Sublime Text
($70 for indiv)
WebStorm
($49 for indiv)
10
Node Package Manager (npm)
Package manager for JavaScript written in JavaScript
Default package manager for Node.js. Auto installed
with Node environment as of v0.6.3. (current v0.12.7)
npm modules are retrieved over the internet from the
public package registry maintained on
http://npmjs.org
©2015 Rocket Software, Inc. All Rights Reserved.
11
npm Overview
©2015 Rocket Software, Inc. All Rights Reserved.
npm
Node.js Project
Installed Packages
12
Npm Usage
©2015 Rocket Software, Inc. All Rights Reserved.
> npm install <package-name> --save --save-exact
{
"dependencies": {
<package-name>: "3.10.1"
}
}
package.json
13
Nodemon
Monitors for changes in files and restarts server
©2015 Rocket Software, Inc. All Rights Reserved.
> npm install –g nodemon
> nodemon server.js
C:demos>node server.js
Server running at http://127.0.0.1:3000/
^C
C:demos>node server.js
Server running at http://127.0.0.1:3000/
^C
C:demos>node server.js
Server running at http://127.0.0.1:3000/
14
Node.js Simple Web Server with Nodemon
©2015 Rocket Software, Inc. All Rights Reserved.
server.js
> Nodemon server.js
Server running at http://127.0.0.1:3000/
15
Express
Minimal and flexible Node.js web application framework
Good for web and mobile applications
Easy to build robust APIs
©2015 Rocket Software, Inc. All Rights Reserved.
> npm install express –-save –-save-exact
16
Web Server with Express
©2015 Rocket Software, Inc. All Rights Reserved.
var express = require('express');
var app = express();
app.get('/', function (req, res) {
res.send('Hello World!');
});
var server = app.listen(3000, function () {
var host = server.address().address;
var port = server.address().port;
console.log('Example app listening at http://%s:%s', host, port);
});
17
Express-generator
©2015 Rocket Software, Inc. All Rights Reserved.
C:demosmvu2015node>express -h
Usage: express [options] [dir]
Options:
-h, --help output usage information
-V, --version output the version number
-e, --ejs add ejs engine support (defaults to jade)
--hbs add handlebars engine support
-H, --hogan add hogan.js engine support
-c, --css <engine> add stylesheet <engine> support (less|stylus|compass) (d
efaults to plain css)
--git add .gitignore
-f, --force force on non-empty directory
18
Template Engines
EJS with Jade templating engine
©2015 Rocket Software, Inc. All Rights Reserved.
19
Bower
©2015 Rocket Software, Inc. All Rights Reserved.
# registered package
$ bower install jquery
# GitHub shorthand
$ bower install desandro/masonry
# Git endpoint
$ bower install git://github.com/user/package.git
# URL
$ bower install http://example.com/script.js
Front-end package manager
20
Express Demo with MV REST API
©2015 Rocket Software, Inc. All Rights Reserved.
21
Sample Node.js Architecture
©2015 Rocket Software, Inc. All Rights Reserved.
MV REST Server
MV DB Server
Web Server
22
Testing Tools
Karma
• Layer on top of testing libraries using common configuration
• Agnostic to testing framework (Jasmine, Mocha, etc.)
• Can test different browser behavior
Jasmine – BDD testing framework
• Frisby – REST API testing framework on Jasmine
Mocha – TDD testing framework
©2015 Rocket Software, Inc. All Rights Reserved.
23
Jasmine Testing Example (no Karma)
©2015 Rocket Software, Inc. All Rights Reserved.
Defined Test (api_spec.js)Route added to index.js
24
Yeoman
Generator ecosystem
Collection of 3 tools
• Scaffolding: Yo
• Build system: Grunt / Gulp
 Minification of JS and CSS
 Build tasks (copy, clean, rename, move, etc.)
 Testing
• Package manager: Bower / npm
 jQuery, AngularJS, Custom Scripts, etc.
©2015 Rocket Software, Inc. All Rights Reserved.
25
Yo Generators
©2015 Rocket Software, Inc. All Rights Reserved.
> yo generator-angular
> Grunt serve
Running "serve" task
Running "clean:server" (clean) task
>> 1 path cleaned.
Running "wiredep:app" (wiredep) task
Running "wiredep:test" (wiredep) task
Running "concurrent:server" (concurrent) task
Running "copy:styles" (copy) task
Copied 1 file
Done, without errors.
Live Reload
26
Popular Generators
©2015 Rocket Software, Inc. All Rights Reserved.
27
Additional Resources
 https://en.wikipedia.org/wiki/Npm_(software)
 https://www.airpair.com/node.js/posts/nodejs-framework-comparison-express-
koa-hapi
©2015 Rocket Software, Inc. All Rights Reserved.
29
Disclaimer
THE INFORMATION CONTAINED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY.
WHILE EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION CONTAINED
IN THIS PRESENTATION, IT IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED.
IN ADDITION, THIS INFORMATION IS BASED ON ROCKET SOFTWARE’S CURRENT PRODUCT PLANS AND STRATEGY,
WHICH ARE SUBJECT TO CHANGE BY ROCKET SOFTWAREWITHOUT NOTICE.
ROCKET SOFTWARE SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE USE OF, OR
OTHERWISE RELATED TO, THIS PRESENTATION OR ANY OTHER DOCUMENTATION.
NOTHING CONTAINED IN THIS PRESENTATION IS INTENDED TO, OR SHALL HAVE THE EFFECT OF:
• CREATING ANY WARRANTY OR REPRESENTATION FROM ROCKET SOFTWARE(OR ITS AFFILIATES OR ITS OR
THEIR SUPPLIERS AND/OR LICENSORS); OR
• ALTERING THE TERMS AND CONDITIONS OF THE APPLICABLE LICENSE AGREEMENT GOVERNING THE USE OF
ROCKET SOFTWARE.
©2015 Rocket Software, Inc. All Rights Reserved.
30
Trademarks and Acknowledgements
The trademarks and service marks identified in the following list are the exclusive properties of Rocket Software,
Inc. and its subsidiaries (collectively, “Rocket Software”). These marks are registered with the U.S. Patent and
Trademark Office, and may be registered or pending registration in other countries. Not all trademarks owned by
Rocket Software are listed. The absence of a mark from this page neither constitutes a waiver of any intellectual
property rights that Rocket Software has established in its marks nor means that Rocket Software is not owner of
any such marks.
Aldon, CorVu, Dynamic Connect, D3, FlashConnect, Pick, mvBase, MvEnterprise, NetCure,
Rocket, SystemBuilder, U2, U2 Web Development Environment, UniData, UniVerse, and
wIntegrate
Other company, product, and service names mentioned herein may be trademarks or service marks of
others.
©2015 Rocket Software, Inc. All Rights Reserved.
31

More Related Content

What's hot

The Future Of Web Frameworks
The Future Of Web FrameworksThe Future Of Web Frameworks
The Future Of Web FrameworksMatt Raible
 
React JS: A Secret Preview
React JS: A Secret PreviewReact JS: A Secret Preview
React JS: A Secret Previewvaluebound
 
Overview of React.JS - Internship Presentation - Week 5
Overview of React.JS - Internship Presentation - Week 5Overview of React.JS - Internship Presentation - Week 5
Overview of React.JS - Internship Presentation - Week 5Devang Garach
 
What Is Express JS?
What Is Express JS?What Is Express JS?
What Is Express JS?Simplilearn
 
Entity Relationship Diagram for Blogging Platform
Entity Relationship Diagram for Blogging PlatformEntity Relationship Diagram for Blogging Platform
Entity Relationship Diagram for Blogging PlatformArman Hossain
 
Basic Wordpress PPT
Basic Wordpress PPT Basic Wordpress PPT
Basic Wordpress PPT mayur akabari
 
What Is Spring Framework In Java | Spring Framework Tutorial For Beginners Wi...
What Is Spring Framework In Java | Spring Framework Tutorial For Beginners Wi...What Is Spring Framework In Java | Spring Framework Tutorial For Beginners Wi...
What Is Spring Framework In Java | Spring Framework Tutorial For Beginners Wi...Edureka!
 
An introduction to Vue.js
An introduction to Vue.jsAn introduction to Vue.js
An introduction to Vue.jsPagepro
 
Reactjs workshop (1)
Reactjs workshop (1)Reactjs workshop (1)
Reactjs workshop (1)Ahmed rebai
 
초심자를 위한 도커 소개 및 입문
초심자를 위한 도커 소개 및 입문초심자를 위한 도커 소개 및 입문
초심자를 위한 도커 소개 및 입문Daniel Seo
 
Next.js vs React | what to choose for frontend development_
Next.js vs React | what to choose for frontend development_Next.js vs React | what to choose for frontend development_
Next.js vs React | what to choose for frontend development_ForceBolt
 
Introduction to Docker - IndiaOpsUG
Introduction to Docker - IndiaOpsUGIntroduction to Docker - IndiaOpsUG
Introduction to Docker - IndiaOpsUGAjeet Singh Raina
 
Web Designing Presentation
Web Designing PresentationWeb Designing Presentation
Web Designing PresentationRahulSuri30
 

What's hot (20)

The Future Of Web Frameworks
The Future Of Web FrameworksThe Future Of Web Frameworks
The Future Of Web Frameworks
 
Xampp installation
Xampp installation Xampp installation
Xampp installation
 
React JS: A Secret Preview
React JS: A Secret PreviewReact JS: A Secret Preview
React JS: A Secret Preview
 
Overview of React.JS - Internship Presentation - Week 5
Overview of React.JS - Internship Presentation - Week 5Overview of React.JS - Internship Presentation - Week 5
Overview of React.JS - Internship Presentation - Week 5
 
What Is Express JS?
What Is Express JS?What Is Express JS?
What Is Express JS?
 
Entity Relationship Diagram for Blogging Platform
Entity Relationship Diagram for Blogging PlatformEntity Relationship Diagram for Blogging Platform
Entity Relationship Diagram for Blogging Platform
 
Simple React Todo List
Simple React Todo ListSimple React Todo List
Simple React Todo List
 
Basic Wordpress PPT
Basic Wordpress PPT Basic Wordpress PPT
Basic Wordpress PPT
 
React for Beginners
React for BeginnersReact for Beginners
React for Beginners
 
React js
React jsReact js
React js
 
What Is Spring Framework In Java | Spring Framework Tutorial For Beginners Wi...
What Is Spring Framework In Java | Spring Framework Tutorial For Beginners Wi...What Is Spring Framework In Java | Spring Framework Tutorial For Beginners Wi...
What Is Spring Framework In Java | Spring Framework Tutorial For Beginners Wi...
 
Spring notes
Spring notesSpring notes
Spring notes
 
An introduction to Vue.js
An introduction to Vue.jsAn introduction to Vue.js
An introduction to Vue.js
 
Reactjs workshop (1)
Reactjs workshop (1)Reactjs workshop (1)
Reactjs workshop (1)
 
React Server Side Rendering with Next.js
React Server Side Rendering with Next.jsReact Server Side Rendering with Next.js
React Server Side Rendering with Next.js
 
초심자를 위한 도커 소개 및 입문
초심자를 위한 도커 소개 및 입문초심자를 위한 도커 소개 및 입문
초심자를 위한 도커 소개 및 입문
 
Next.js vs React | what to choose for frontend development_
Next.js vs React | what to choose for frontend development_Next.js vs React | what to choose for frontend development_
Next.js vs React | what to choose for frontend development_
 
React js
React jsReact js
React js
 
Introduction to Docker - IndiaOpsUG
Introduction to Docker - IndiaOpsUGIntroduction to Docker - IndiaOpsUG
Introduction to Docker - IndiaOpsUG
 
Web Designing Presentation
Web Designing PresentationWeb Designing Presentation
Web Designing Presentation
 

Viewers also liked

8.1 In Depth: New 64-bit Files and File Management
8.1 In Depth: New 64-bit Files and File Management8.1 In Depth: New 64-bit Files and File Management
8.1 In Depth: New 64-bit Files and File ManagementRocket Software
 
Explore What’s New In UniData 8.1
Explore What’s New In UniData 8.1Explore What’s New In UniData 8.1
Explore What’s New In UniData 8.1Rocket Software
 
Driving a PHP Application with MultiValue Data
Driving a PHP Application with MultiValue DataDriving a PHP Application with MultiValue Data
Driving a PHP Application with MultiValue DataRocket Software
 
AngularJS for Web and Mobile
 AngularJS for Web and Mobile AngularJS for Web and Mobile
AngularJS for Web and MobileRocket Software
 
HADR Best Practices (High Availability Disaster Recovery)
HADR Best Practices (High Availability Disaster Recovery)HADR Best Practices (High Availability Disaster Recovery)
HADR Best Practices (High Availability Disaster Recovery)Rocket Software
 
Unidata's Approach to Community Broadening through Data and Technology Sharing
Unidata's Approach to Community Broadening through Data and Technology SharingUnidata's Approach to Community Broadening through Data and Technology Sharing
Unidata's Approach to Community Broadening through Data and Technology SharingThe HDF-EOS Tools and Information Center
 

Viewers also liked (8)

8.1 In Depth: New 64-bit Files and File Management
8.1 In Depth: New 64-bit Files and File Management8.1 In Depth: New 64-bit Files and File Management
8.1 In Depth: New 64-bit Files and File Management
 
Explore What’s New In UniData 8.1
Explore What’s New In UniData 8.1Explore What’s New In UniData 8.1
Explore What’s New In UniData 8.1
 
Troubleshooting UniData
Troubleshooting UniDataTroubleshooting UniData
Troubleshooting UniData
 
Driving a PHP Application with MultiValue Data
Driving a PHP Application with MultiValue DataDriving a PHP Application with MultiValue Data
Driving a PHP Application with MultiValue Data
 
Giddy Up on GitHub
Giddy Up on GitHubGiddy Up on GitHub
Giddy Up on GitHub
 
AngularJS for Web and Mobile
 AngularJS for Web and Mobile AngularJS for Web and Mobile
AngularJS for Web and Mobile
 
HADR Best Practices (High Availability Disaster Recovery)
HADR Best Practices (High Availability Disaster Recovery)HADR Best Practices (High Availability Disaster Recovery)
HADR Best Practices (High Availability Disaster Recovery)
 
Unidata's Approach to Community Broadening through Data and Technology Sharing
Unidata's Approach to Community Broadening through Data and Technology SharingUnidata's Approach to Community Broadening through Data and Technology Sharing
Unidata's Approach to Community Broadening through Data and Technology Sharing
 

Similar to Node.js Tools Ecosystem

Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps
Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps
Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps ZNetLive
 
Mulesoft Meetup Roma - Monitoring Framework & DevOps.pptx
Mulesoft Meetup Roma - Monitoring Framework & DevOps.pptxMulesoft Meetup Roma - Monitoring Framework & DevOps.pptx
Mulesoft Meetup Roma - Monitoring Framework & DevOps.pptxAlfonso Martino
 
Pivotal Platform - December Release A First Look
Pivotal Platform - December Release A First LookPivotal Platform - December Release A First Look
Pivotal Platform - December Release A First LookVMware Tanzu
 
Building Applications Using the U2 Toolkit for .NET
Building Applications Using the U2 Toolkit for .NETBuilding Applications Using the U2 Toolkit for .NET
Building Applications Using the U2 Toolkit for .NETRocket Software
 
Custom Runtimes for the Cloud
Custom Runtimes for the CloudCustom Runtimes for the Cloud
Custom Runtimes for the CloudCloudBees
 
MuleSoft Sizing Guidelines - VirtualMuleys
MuleSoft Sizing Guidelines - VirtualMuleysMuleSoft Sizing Guidelines - VirtualMuleys
MuleSoft Sizing Guidelines - VirtualMuleysAngel Alberici
 
RAP vs GWT Which AJAX Technology is for you?
RAP vs GWT Which AJAX Technology is for you?RAP vs GWT Which AJAX Technology is for you?
RAP vs GWT Which AJAX Technology is for you?Mark Russell
 
MuleSoft Meetup Roma - Runtime Fabric Series (From Zero to Hero) - Sessione 3
MuleSoft Meetup Roma - Runtime Fabric Series (From Zero to Hero) - Sessione 3MuleSoft Meetup Roma - Runtime Fabric Series (From Zero to Hero) - Sessione 3
MuleSoft Meetup Roma - Runtime Fabric Series (From Zero to Hero) - Sessione 3Alfonso Martino
 
Building Rich Applications with Appcelerator
Building Rich Applications with AppceleratorBuilding Rich Applications with Appcelerator
Building Rich Applications with AppceleratorMatt Raible
 
Programmable infrastructure with FlyScript
Programmable infrastructure with FlyScriptProgrammable infrastructure with FlyScript
Programmable infrastructure with FlyScriptRiverbed Technology
 
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)Brian Culver
 
JCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptxJCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptxGrace Jansen
 
Make the Shift from Manual to Automation with Open Source
Make the Shift from Manual to Automation with Open SourceMake the Shift from Manual to Automation with Open Source
Make the Shift from Manual to Automation with Open SourcePerfecto by Perforce
 
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)QAware GmbH
 
GWT training session 1
GWT training session 1GWT training session 1
GWT training session 1SNEHAL MASNE
 
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)Brian Culver
 
Programming Server side with Sevlet
 Programming Server side with Sevlet  Programming Server side with Sevlet
Programming Server side with Sevlet backdoor
 

Similar to Node.js Tools Ecosystem (20)

Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps
Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps
Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps
 
Blazor Full-Stack
Blazor Full-StackBlazor Full-Stack
Blazor Full-Stack
 
Mulesoft Meetup Roma - Monitoring Framework & DevOps.pptx
Mulesoft Meetup Roma - Monitoring Framework & DevOps.pptxMulesoft Meetup Roma - Monitoring Framework & DevOps.pptx
Mulesoft Meetup Roma - Monitoring Framework & DevOps.pptx
 
Sst hackathon express
Sst hackathon expressSst hackathon express
Sst hackathon express
 
Online spanish meetup #2
Online spanish meetup #2Online spanish meetup #2
Online spanish meetup #2
 
Pivotal Platform - December Release A First Look
Pivotal Platform - December Release A First LookPivotal Platform - December Release A First Look
Pivotal Platform - December Release A First Look
 
Building Applications Using the U2 Toolkit for .NET
Building Applications Using the U2 Toolkit for .NETBuilding Applications Using the U2 Toolkit for .NET
Building Applications Using the U2 Toolkit for .NET
 
Custom Runtimes for the Cloud
Custom Runtimes for the CloudCustom Runtimes for the Cloud
Custom Runtimes for the Cloud
 
MuleSoft Sizing Guidelines - VirtualMuleys
MuleSoft Sizing Guidelines - VirtualMuleysMuleSoft Sizing Guidelines - VirtualMuleys
MuleSoft Sizing Guidelines - VirtualMuleys
 
RAP vs GWT Which AJAX Technology is for you?
RAP vs GWT Which AJAX Technology is for you?RAP vs GWT Which AJAX Technology is for you?
RAP vs GWT Which AJAX Technology is for you?
 
MuleSoft Meetup Roma - Runtime Fabric Series (From Zero to Hero) - Sessione 3
MuleSoft Meetup Roma - Runtime Fabric Series (From Zero to Hero) - Sessione 3MuleSoft Meetup Roma - Runtime Fabric Series (From Zero to Hero) - Sessione 3
MuleSoft Meetup Roma - Runtime Fabric Series (From Zero to Hero) - Sessione 3
 
Building Rich Applications with Appcelerator
Building Rich Applications with AppceleratorBuilding Rich Applications with Appcelerator
Building Rich Applications with Appcelerator
 
Programmable infrastructure with FlyScript
Programmable infrastructure with FlyScriptProgrammable infrastructure with FlyScript
Programmable infrastructure with FlyScript
 
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
 
JCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptxJCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptx
 
Make the Shift from Manual to Automation with Open Source
Make the Shift from Manual to Automation with Open SourceMake the Shift from Manual to Automation with Open Source
Make the Shift from Manual to Automation with Open Source
 
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
 
GWT training session 1
GWT training session 1GWT training session 1
GWT training session 1
 
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
 
Programming Server side with Sevlet
 Programming Server side with Sevlet  Programming Server side with Sevlet
Programming Server side with Sevlet
 

Recently uploaded

Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 

Recently uploaded (20)

Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 

Node.js Tools Ecosystem

  • 1. 1 Node.js Tools Ecosystem Michael Byrne, MultiValue Evangelist
  • 2. 2 Abstract  Node.js is a powerful JavaScript platform that helps you build server applications. It has become a popular option for building network applications and web servers. Explore how Node.js interacts with the multitude of add-on open source modules to build a modern web application in no time. ©2015 Rocket Software, Inc. All Rights Reserved.
  • 3. 3 Agenda  Intro to Node.js  Code editors  Node Package Manager (npm)  Web server: Express, koa, hapi  Template engines: Jade / EJS  Client-side packaging: Bower / Browserify  Task runners: Grunt / Gulp  Scaffolding tools: Yo (Yeoman)  Testing: Jasmine, Mocha, Karma ©2015 Rocket Software, Inc. All Rights Reserved.
  • 4. 4 What is Node.js? Platform built on Google V8 JavaScript engine • Open-source under BSD license • Extremely fast • Focused on web; proficient with HTTP, DNS, TCP, etc. Easily build fast, scalable network applications Asynchronous, event-driven, non-blocking I/O model Large developer community ©2015 Rocket Software, Inc. All Rights Reserved.
  • 5. 5 Why Are JavaScript and Node.js Relevant? Incredibly fast – non-blocking programming Dynamic objects and prototypal inheritance JavaScript is the internet Consistent language across stack Tooling and community ©2015 Rocket Software, Inc. All Rights Reserved.
  • 6. 6 What Enterprises Say ©2015 Rocket Software, Inc. All Rights Reserved. “Node.js powers our web applications and has allowed our teams to move much faster in bringing their designs to life” Jeff Harrell – Director of Engineering at PayPal “Node’s evented I/O model freed us from worrying about locking and concurrency issues that are common with multithreaded async I/O” Subbu Allarmarju – Principal Member, Technical Staff at ebay “On the server side, our entire mobile software stack is completely built in Node. One reason wasscale. The second is Node showed us huge performance gains.” Kiran Prasad – Mobile Development Lead at LinkedIn Source: http://apmblog.dynatrace.com/2015/04/09/node-js-is-hitting-the-big-time-in-enterprise-markets/
  • 7. 7 Sample Node.js Architecture ©2015 Rocket Software, Inc. All Rights Reserved. Web API HTML MV REST Server MV DB Server Web Server
  • 8. 8 Node.js Simple Web Server ©2015 Rocket Software, Inc. All Rights Reserved. server.js > Node server.js Server running at http://127.0.0.1:3000/
  • 9. 9 Code Editors for Web Development ©2015 Rocket Software, Inc. All Rights Reserved. Brackets (Free) Sublime Text ($70 for indiv) WebStorm ($49 for indiv)
  • 10. 10 Node Package Manager (npm) Package manager for JavaScript written in JavaScript Default package manager for Node.js. Auto installed with Node environment as of v0.6.3. (current v0.12.7) npm modules are retrieved over the internet from the public package registry maintained on http://npmjs.org ©2015 Rocket Software, Inc. All Rights Reserved.
  • 11. 11 npm Overview ©2015 Rocket Software, Inc. All Rights Reserved. npm Node.js Project Installed Packages
  • 12. 12 Npm Usage ©2015 Rocket Software, Inc. All Rights Reserved. > npm install <package-name> --save --save-exact { "dependencies": { <package-name>: "3.10.1" } } package.json
  • 13. 13 Nodemon Monitors for changes in files and restarts server ©2015 Rocket Software, Inc. All Rights Reserved. > npm install –g nodemon > nodemon server.js C:demos>node server.js Server running at http://127.0.0.1:3000/ ^C C:demos>node server.js Server running at http://127.0.0.1:3000/ ^C C:demos>node server.js Server running at http://127.0.0.1:3000/
  • 14. 14 Node.js Simple Web Server with Nodemon ©2015 Rocket Software, Inc. All Rights Reserved. server.js > Nodemon server.js Server running at http://127.0.0.1:3000/
  • 15. 15 Express Minimal and flexible Node.js web application framework Good for web and mobile applications Easy to build robust APIs ©2015 Rocket Software, Inc. All Rights Reserved. > npm install express –-save –-save-exact
  • 16. 16 Web Server with Express ©2015 Rocket Software, Inc. All Rights Reserved. var express = require('express'); var app = express(); app.get('/', function (req, res) { res.send('Hello World!'); }); var server = app.listen(3000, function () { var host = server.address().address; var port = server.address().port; console.log('Example app listening at http://%s:%s', host, port); });
  • 17. 17 Express-generator ©2015 Rocket Software, Inc. All Rights Reserved. C:demosmvu2015node>express -h Usage: express [options] [dir] Options: -h, --help output usage information -V, --version output the version number -e, --ejs add ejs engine support (defaults to jade) --hbs add handlebars engine support -H, --hogan add hogan.js engine support -c, --css <engine> add stylesheet <engine> support (less|stylus|compass) (d efaults to plain css) --git add .gitignore -f, --force force on non-empty directory
  • 18. 18 Template Engines EJS with Jade templating engine ©2015 Rocket Software, Inc. All Rights Reserved.
  • 19. 19 Bower ©2015 Rocket Software, Inc. All Rights Reserved. # registered package $ bower install jquery # GitHub shorthand $ bower install desandro/masonry # Git endpoint $ bower install git://github.com/user/package.git # URL $ bower install http://example.com/script.js Front-end package manager
  • 20. 20 Express Demo with MV REST API ©2015 Rocket Software, Inc. All Rights Reserved.
  • 21. 21 Sample Node.js Architecture ©2015 Rocket Software, Inc. All Rights Reserved. MV REST Server MV DB Server Web Server
  • 22. 22 Testing Tools Karma • Layer on top of testing libraries using common configuration • Agnostic to testing framework (Jasmine, Mocha, etc.) • Can test different browser behavior Jasmine – BDD testing framework • Frisby – REST API testing framework on Jasmine Mocha – TDD testing framework ©2015 Rocket Software, Inc. All Rights Reserved.
  • 23. 23 Jasmine Testing Example (no Karma) ©2015 Rocket Software, Inc. All Rights Reserved. Defined Test (api_spec.js)Route added to index.js
  • 24. 24 Yeoman Generator ecosystem Collection of 3 tools • Scaffolding: Yo • Build system: Grunt / Gulp  Minification of JS and CSS  Build tasks (copy, clean, rename, move, etc.)  Testing • Package manager: Bower / npm  jQuery, AngularJS, Custom Scripts, etc. ©2015 Rocket Software, Inc. All Rights Reserved.
  • 25. 25 Yo Generators ©2015 Rocket Software, Inc. All Rights Reserved. > yo generator-angular > Grunt serve Running "serve" task Running "clean:server" (clean) task >> 1 path cleaned. Running "wiredep:app" (wiredep) task Running "wiredep:test" (wiredep) task Running "concurrent:server" (concurrent) task Running "copy:styles" (copy) task Copied 1 file Done, without errors. Live Reload
  • 26. 26 Popular Generators ©2015 Rocket Software, Inc. All Rights Reserved.
  • 27. 27 Additional Resources  https://en.wikipedia.org/wiki/Npm_(software)  https://www.airpair.com/node.js/posts/nodejs-framework-comparison-express- koa-hapi ©2015 Rocket Software, Inc. All Rights Reserved.
  • 28. 29 Disclaimer THE INFORMATION CONTAINED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY. WHILE EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION CONTAINED IN THIS PRESENTATION, IT IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. IN ADDITION, THIS INFORMATION IS BASED ON ROCKET SOFTWARE’S CURRENT PRODUCT PLANS AND STRATEGY, WHICH ARE SUBJECT TO CHANGE BY ROCKET SOFTWAREWITHOUT NOTICE. ROCKET SOFTWARE SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE USE OF, OR OTHERWISE RELATED TO, THIS PRESENTATION OR ANY OTHER DOCUMENTATION. NOTHING CONTAINED IN THIS PRESENTATION IS INTENDED TO, OR SHALL HAVE THE EFFECT OF: • CREATING ANY WARRANTY OR REPRESENTATION FROM ROCKET SOFTWARE(OR ITS AFFILIATES OR ITS OR THEIR SUPPLIERS AND/OR LICENSORS); OR • ALTERING THE TERMS AND CONDITIONS OF THE APPLICABLE LICENSE AGREEMENT GOVERNING THE USE OF ROCKET SOFTWARE. ©2015 Rocket Software, Inc. All Rights Reserved.
  • 29. 30 Trademarks and Acknowledgements The trademarks and service marks identified in the following list are the exclusive properties of Rocket Software, Inc. and its subsidiaries (collectively, “Rocket Software”). These marks are registered with the U.S. Patent and Trademark Office, and may be registered or pending registration in other countries. Not all trademarks owned by Rocket Software are listed. The absence of a mark from this page neither constitutes a waiver of any intellectual property rights that Rocket Software has established in its marks nor means that Rocket Software is not owner of any such marks. Aldon, CorVu, Dynamic Connect, D3, FlashConnect, Pick, mvBase, MvEnterprise, NetCure, Rocket, SystemBuilder, U2, U2 Web Development Environment, UniData, UniVerse, and wIntegrate Other company, product, and service names mentioned herein may be trademarks or service marks of others. ©2015 Rocket Software, Inc. All Rights Reserved.
  • 30. 31