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 (20)

Blog - An Online blogging project
Blog - An Online blogging project Blog - An Online blogging project
Blog - An Online blogging project
 
Java Introduction
Java IntroductionJava Introduction
Java Introduction
 
Firebase
FirebaseFirebase
Firebase
 
Core java
Core java Core java
Core java
 
Introduction to angular with a simple but complete project
Introduction to angular with a simple but complete projectIntroduction to angular with a simple but complete project
Introduction to angular with a simple but complete project
 
Introduction to Firebase with Android and Beyond...
Introduction to Firebase with Android and Beyond...Introduction to Firebase with Android and Beyond...
Introduction to Firebase with Android and Beyond...
 
Spring Boot Interview Questions | Edureka
Spring Boot Interview Questions | EdurekaSpring Boot Interview Questions | Edureka
Spring Boot Interview Questions | Edureka
 
Web api
Web apiWeb api
Web api
 
Asp.net caching
Asp.net cachingAsp.net caching
Asp.net caching
 
REST APIs with Spring
REST APIs with SpringREST APIs with Spring
REST APIs with Spring
 
Spring framework
Spring frameworkSpring framework
Spring framework
 
JDK,JRE,JVM
JDK,JRE,JVMJDK,JRE,JVM
JDK,JRE,JVM
 
Spring Boot Tutorial
Spring Boot TutorialSpring Boot Tutorial
Spring Boot Tutorial
 
Spring Boot in Action
Spring Boot in Action Spring Boot in Action
Spring Boot in Action
 
core java
core javacore java
core java
 
Nodejs presentation
Nodejs presentationNodejs presentation
Nodejs presentation
 
Calculator using Java
Calculator using JavaCalculator using Java
Calculator using Java
 
Spring boot
Spring bootSpring boot
Spring boot
 
Arrays in Java
Arrays in Java Arrays in Java
Arrays in Java
 
Api presentation
Api presentationApi presentation
Api 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

React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxnada99848
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 

Recently uploaded (20)

React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptx
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 

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