SlideShare a Scribd company logo
1 of 28
Header
Introduction to Node.js
Course Overview
 What is Node.js?
 Installing Node.js
 Node REPL
 Node Programs
 Managing Packages with NPM
 Building a Simple Web Server
 Reading Files from Disk
 Debugging
 Creating a Package
 Use NPM to run a package
What is Node.js?
 Node.js is a cross-platform, JavaScript environment on the server
 JavaScript is a glue language for C++ modules
 It is powered by Google’s V8 JavaScript engine
 Node.js uses an event driven, non-blocking I/O model
 Node.js is like a web browser with a different set of C++ modules
 It provides modules for interacting with local system resources such as
processes, file system, networking, etc…
Node.js compared to a Web Browser
JavaScript
V8
DOM XHR
Audio
File Reader
Timers
Web
Sockets
Video
Many
More…
JavaScript
V8
File
System
Net
Cluster
HTTP
Timer
Process
Stream
Many
More…
Web Browser Node.js
Installing Node.js
 Node.js can be installed from a platform specific installer, precompiled
source code, and compiled from source code
 To download the installer: http://www.nodejs.org
 When installing using the platform specific installer, most users accept
the defaults
Node.js Versions
 The installer and pre-compiled binaries can be downloaded for either
the Long-Term Support version or Current Version
 Long-Term Support version is best for applications in production
 The Current Version is best for working with the newest features
Node REPL Environment
 REPL stands for Read, Evaluate, Print, Loop
 Allows the user to enter a JavaScript command, evaluate it, print the
results, and loop to enter another command
 Supports multiline commands, customize command prompt and
preconfigured context
 Sessions can be saved, and reloaded again
 Useful for learning JavaScript or executing tasks from a JavaScript
command line
Node.js Programs
 Node.js programs can be created using JavaScript files which are
executed with the Node.js executable
 JavaScript files contain JavaScript programming statements and
expressions, and have a filename extension of ‘.js’
 To execute a Node.js program, run the Node.js executable for the given
environment and pass the name of the file (with or without the JS
extension) as the first argument
Managing Packages with NPM
 NPM is an acronym for Node.js Package Manager
 NPM provides a public package repository, a specification for building
packages, and a command line tool for working with packages
 http://www.npmjs.com
 The company npm, Inc. develops and maintains NPM
 Node.js distributes the npm executable along with the node
executable, but it's actually a separate program with its own versioning
NPM Public Repository
https://www.npmjs.com/
Local vs Global Packages
 Packages can be installed locally or globally
 Local packages are stored locally in a project, in the node_modules
folder
 Global packages are stored globally on system
 Typically, local packages are code libraries used by project
 Typically, global packages are executables used to perform some
operation on a project such as running tasks
 Local packages are available only within their specific project, and
global packages are available system wide
Installing & Uninstalling Packages
 The npm program is used to
manage packages
 The first argument to the npm
program is the command to be
executed
 Packages can be installed with the
install command, and uninstalled
with the uninstall command
 There are many more commands
available for NPM
• The –global flag installs and
uninstalls the package globally,
without the global flag, the
packages are installed and
uninstalled locally
Global Packages on Windows
 Are global to the user,
not the system
 Does not require
administrative privileges
Globally Installed Packages are stored in:
C:Users<username>AppDataRoamingnpm
Global Packages on Mac and Linux
 By default, are global to
the system, not just the
user
 Requires administrative
privileges, unless
permissions are fixed
On a Mac by default, Globally Installed Packages are
stored in:
/usr/local/lib/node_modules
Fixing Permissions for Global Packages
https://docs.npmjs.com/getting-started/fixing-npm-permissions
Building a Simple Web Server
 One of the core modules for Node.js is the HTTP module, which
provides a web server and web client
 The web server is very flexible, but requires a lot of boiler plate coding
to build even the simplest applications
 Web server are I/O intensive applications making them well suited for
Node.js
 Node.js is great for web servers because of its easy handling of JSON
data
Reading Files from Disk
 Node.js allows full access to the system (such as accessing the file
system)
 Accessing file system resources can be synchronously and
asynchronously
 Synchronous access can be used for initial program loading, but only
asynchronous access should be used during program operation
 Both text and binary data can read and written
 Full support for streams
Debugging Node.js
 Node.js comes with a built in command line debugger, but its limited
 Instead, there are many code editors and other tools which greatly
simplify debugging of Node.js applications
 StrongLoop's Node Inspector (free – Windows/Mac/Linux)
 Microsoft Visual Studio Code (free – Windows/Mac/Linux)
 Microsoft Visual Studio with Node.js Extension (community edition free – Windows only)
 GitHub's Atom with Node Debugger Package (free – Windows/Mac/Linux)
 JetBrains' WebStorm (not free – Windows/Mac/Linux)
 These IDEs provide the standard fare of debugging tools such as
breakpoint, call stacks, watches, and local variables
StrongLoop's Node Inspector
https://github.com/node-inspector/node-inspector
Microsoft's Visual Studio Code
https://code.visualstudio.com
Microsoft's Visual Studio with Node.js Extension
https://www.visualstudio.com/products/visual-studio-community-vs
GitHub's Atom with the Node Debugger Package
https://atom.io
JetBrains' WebStorm
https://www.jetbrains.com/webstorm
Creating a Package
 All projects (which are also packages) need to be configured to work
with NPM
 The command npm init is used to configure a project
 It will ask a series of questions, all of which have default answers, that
are used to create and initialize a package.json file
 The package.json file contains metadata about the project, as well as,
a list of application and development dependencies
 When NPM packages are installed, NPM will register them with the
package.json file
Saving Package Dependencies
 Simply installing packages do not save the dependency in the
package.json file
 In addition to installing, additional flags need to be specified:
 --save or -S will save the package as an application dependency
 --save-dev or -D will save the package a development dependency
 Application dependencies are used by the Node.js program when
executing (common example would be Express)
 Development dependencies are used to develop the Node.js program
(common example would be Grunt)
Saving Package Dependencies
• The terminal commands to left, will
produce a package.json file similar to
the one on the right.
• The file is a JSON file, and can be edited
by hand
• Name is the name of the package
• Version follows the SEMVER scheme
• The version of each dependency is
tracked as well
• Main is the main file imported when
requiring the module
Terminal Commands Package.json
Use NPM to run a package
 In addition to managing packages with NPM,
packages can be configured to be executed
with NPM
 To configure the execution of Node packages,
the scripts option of the package.json is
configured
 To run a Node.js program, the start script is
configured
Conclusion
 Node.js is a great platform building applications, especially
applications which are I/O intensive
 Working with Node.js involves many tools for managing packages,
debugging code, and packaging projects for deployment
 The Node Package Manager (NPM) is used to install packages, and
divide applications into smaller reusable parts
 Node.js can be used for development tooling, web applications and
general purpose applications

More Related Content

Similar to Introduction to NodeJS JSX is an extended Javascript based language used by React.js JSX enables writing html tags within javascript functions

Basic Concept of Node.js & NPM
Basic Concept of Node.js & NPMBasic Concept of Node.js & NPM
Basic Concept of Node.js & NPMBhargav Anadkat
 
Halton Software Peer 2 Peer Meetup #10
Halton Software Peer 2 Peer Meetup #10Halton Software Peer 2 Peer Meetup #10
Halton Software Peer 2 Peer Meetup #10David Ashton
 
Steps to Install NPM and Node.js on Windows and MAC
Steps to Install NPM and Node.js on Windows and MACSteps to Install NPM and Node.js on Windows and MAC
Steps to Install NPM and Node.js on Windows and MACInexture Solutions
 
An Introduction of Node Package Manager (NPM)
An Introduction of Node Package Manager (NPM)An Introduction of Node Package Manager (NPM)
An Introduction of Node Package Manager (NPM)iFour Technolab Pvt. Ltd.
 
Improving build solutions dependency management with webpack
Improving build solutions  dependency management with webpackImproving build solutions  dependency management with webpack
Improving build solutions dependency management with webpackNodeXperts
 
Node Session - 2
Node Session - 2Node Session - 2
Node Session - 2Bhavin Shah
 
Node JS Express : Steps to Create Restful Web App
Node JS Express : Steps to Create Restful Web AppNode JS Express : Steps to Create Restful Web App
Node JS Express : Steps to Create Restful Web AppEdureka!
 
NodeJS guide for beginners
NodeJS guide for beginnersNodeJS guide for beginners
NodeJS guide for beginnersEnoch Joshua
 
Angular Part 3 (Basic knowledge)
Angular Part 3 (Basic knowledge)Angular Part 3 (Basic knowledge)
Angular Part 3 (Basic knowledge)Rohit Singh
 
Orchestrated Android-Style System Upgrades for Embedded Linux
Orchestrated Android-Style System Upgrades for Embedded LinuxOrchestrated Android-Style System Upgrades for Embedded Linux
Orchestrated Android-Style System Upgrades for Embedded LinuxKynetics
 
Orchestrated Android-Style System Upgrades for Embedded Linux
Orchestrated Android-Style System Upgrades for Embedded LinuxOrchestrated Android-Style System Upgrades for Embedded Linux
Orchestrated Android-Style System Upgrades for Embedded LinuxNicolaLaGloria
 
I Just Want to Run My Code: Waypoint, Nomad, and Other Things
I Just Want to Run My Code: Waypoint, Nomad, and Other ThingsI Just Want to Run My Code: Waypoint, Nomad, and Other Things
I Just Want to Run My Code: Waypoint, Nomad, and Other ThingsMichael Lange
 

Similar to Introduction to NodeJS JSX is an extended Javascript based language used by React.js JSX enables writing html tags within javascript functions (20)

Basic Concept of Node.js & NPM
Basic Concept of Node.js & NPMBasic Concept of Node.js & NPM
Basic Concept of Node.js & NPM
 
Halton Software Peer 2 Peer Meetup #10
Halton Software Peer 2 Peer Meetup #10Halton Software Peer 2 Peer Meetup #10
Halton Software Peer 2 Peer Meetup #10
 
Steps to Install NPM and Node.js on Windows and MAC
Steps to Install NPM and Node.js on Windows and MACSteps to Install NPM and Node.js on Windows and MAC
Steps to Install NPM and Node.js on Windows and MAC
 
An Introduction of Node Package Manager (NPM)
An Introduction of Node Package Manager (NPM)An Introduction of Node Package Manager (NPM)
An Introduction of Node Package Manager (NPM)
 
Node J pdf.docx
Node J pdf.docxNode J pdf.docx
Node J pdf.docx
 
Node J pdf.docx
Node J pdf.docxNode J pdf.docx
Node J pdf.docx
 
Node.js
Node.jsNode.js
Node.js
 
Improving build solutions dependency management with webpack
Improving build solutions  dependency management with webpackImproving build solutions  dependency management with webpack
Improving build solutions dependency management with webpack
 
Node Session - 2
Node Session - 2Node Session - 2
Node Session - 2
 
Node JS Express : Steps to Create Restful Web App
Node JS Express : Steps to Create Restful Web AppNode JS Express : Steps to Create Restful Web App
Node JS Express : Steps to Create Restful Web App
 
Node js crash course session 1
Node js crash course   session 1Node js crash course   session 1
Node js crash course session 1
 
NodeJS guide for beginners
NodeJS guide for beginnersNodeJS guide for beginners
NodeJS guide for beginners
 
Angular Part 3 (Basic knowledge)
Angular Part 3 (Basic knowledge)Angular Part 3 (Basic knowledge)
Angular Part 3 (Basic knowledge)
 
Android ndk
Android ndkAndroid ndk
Android ndk
 
Node.js.pdf
Node.js.pdfNode.js.pdf
Node.js.pdf
 
Orchestrated Android-Style System Upgrades for Embedded Linux
Orchestrated Android-Style System Upgrades for Embedded LinuxOrchestrated Android-Style System Upgrades for Embedded Linux
Orchestrated Android-Style System Upgrades for Embedded Linux
 
Orchestrated Android-Style System Upgrades for Embedded Linux
Orchestrated Android-Style System Upgrades for Embedded LinuxOrchestrated Android-Style System Upgrades for Embedded Linux
Orchestrated Android-Style System Upgrades for Embedded Linux
 
I Just Want to Run My Code: Waypoint, Nomad, and Other Things
I Just Want to Run My Code: Waypoint, Nomad, and Other ThingsI Just Want to Run My Code: Waypoint, Nomad, and Other Things
I Just Want to Run My Code: Waypoint, Nomad, and Other Things
 
Android NDK
Android NDKAndroid NDK
Android NDK
 
NPM.pdf
NPM.pdfNPM.pdf
NPM.pdf
 

More from JEEVANANTHAMG6

1. Arithmetic Operations - Addition and subtraction of signed numbers.pptx
1. Arithmetic Operations - Addition and subtraction of signed numbers.pptx1. Arithmetic Operations - Addition and subtraction of signed numbers.pptx
1. Arithmetic Operations - Addition and subtraction of signed numbers.pptxJEEVANANTHAMG6
 
7. Input Output Operations.pptx
7. Input Output Operations.pptx7. Input Output Operations.pptx
7. Input Output Operations.pptxJEEVANANTHAMG6
 
MIPS IMPLEMENTATION.pptx
MIPS IMPLEMENTATION.pptxMIPS IMPLEMENTATION.pptx
MIPS IMPLEMENTATION.pptxJEEVANANTHAMG6
 
CLEAN CODING AND DEVOPS Final.pptx
CLEAN CODING AND DEVOPS Final.pptxCLEAN CODING AND DEVOPS Final.pptx
CLEAN CODING AND DEVOPS Final.pptxJEEVANANTHAMG6
 
Arithmetic for Computers.ppt
Arithmetic for Computers.pptArithmetic for Computers.ppt
Arithmetic for Computers.pptJEEVANANTHAMG6
 
6. Addressng Modes.pptx
6. Addressng Modes.pptx6. Addressng Modes.pptx
6. Addressng Modes.pptxJEEVANANTHAMG6
 
1.Basic Structure of Computer System.ppt
1.Basic Structure of Computer System.ppt1.Basic Structure of Computer System.ppt
1.Basic Structure of Computer System.pptJEEVANANTHAMG6
 

More from JEEVANANTHAMG6 (9)

1. Arithmetic Operations - Addition and subtraction of signed numbers.pptx
1. Arithmetic Operations - Addition and subtraction of signed numbers.pptx1. Arithmetic Operations - Addition and subtraction of signed numbers.pptx
1. Arithmetic Operations - Addition and subtraction of signed numbers.pptx
 
7. Input Output Operations.pptx
7. Input Output Operations.pptx7. Input Output Operations.pptx
7. Input Output Operations.pptx
 
MIPS IMPLEMENTATION.pptx
MIPS IMPLEMENTATION.pptxMIPS IMPLEMENTATION.pptx
MIPS IMPLEMENTATION.pptx
 
EITK UNIT - III.pptx
EITK UNIT - III.pptxEITK UNIT - III.pptx
EITK UNIT - III.pptx
 
CLEAN CODING AND DEVOPS Final.pptx
CLEAN CODING AND DEVOPS Final.pptxCLEAN CODING AND DEVOPS Final.pptx
CLEAN CODING AND DEVOPS Final.pptx
 
UNIT I.ppt
UNIT I.pptUNIT I.ppt
UNIT I.ppt
 
Arithmetic for Computers.ppt
Arithmetic for Computers.pptArithmetic for Computers.ppt
Arithmetic for Computers.ppt
 
6. Addressng Modes.pptx
6. Addressng Modes.pptx6. Addressng Modes.pptx
6. Addressng Modes.pptx
 
1.Basic Structure of Computer System.ppt
1.Basic Structure of Computer System.ppt1.Basic Structure of Computer System.ppt
1.Basic Structure of Computer System.ppt
 

Recently uploaded

UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingUNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingrknatarajan
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
result management system report for college project
result management system report for college projectresult management system report for college project
result management system report for college projectTonystark477637
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxupamatechverse
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Christo Ananth
 
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSHARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSRajkumarAkumalla
 
UNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular ConduitsUNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular Conduitsrknatarajan
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...Call Girls in Nagpur High Profile
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)Suman Mia
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Dr.Costas Sachpazis
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxpranjaldaimarysona
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escortsranjana rawat
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordAsst.prof M.Gokilavani
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Call Girls in Nagpur High Profile
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...ranjana rawat
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...Soham Mondal
 
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).pptssuser5c9d4b1
 

Recently uploaded (20)

UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingUNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
 
result management system report for college project
result management system report for college projectresult management system report for college project
result management system report for college project
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptx
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
 
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSHARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
 
UNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular ConduitsUNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular Conduits
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptx
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
 
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINEDJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
 
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
 

Introduction to NodeJS JSX is an extended Javascript based language used by React.js JSX enables writing html tags within javascript functions

  • 2. Course Overview  What is Node.js?  Installing Node.js  Node REPL  Node Programs  Managing Packages with NPM  Building a Simple Web Server  Reading Files from Disk  Debugging  Creating a Package  Use NPM to run a package
  • 3. What is Node.js?  Node.js is a cross-platform, JavaScript environment on the server  JavaScript is a glue language for C++ modules  It is powered by Google’s V8 JavaScript engine  Node.js uses an event driven, non-blocking I/O model  Node.js is like a web browser with a different set of C++ modules  It provides modules for interacting with local system resources such as processes, file system, networking, etc…
  • 4. Node.js compared to a Web Browser JavaScript V8 DOM XHR Audio File Reader Timers Web Sockets Video Many More… JavaScript V8 File System Net Cluster HTTP Timer Process Stream Many More… Web Browser Node.js
  • 5. Installing Node.js  Node.js can be installed from a platform specific installer, precompiled source code, and compiled from source code  To download the installer: http://www.nodejs.org  When installing using the platform specific installer, most users accept the defaults
  • 6. Node.js Versions  The installer and pre-compiled binaries can be downloaded for either the Long-Term Support version or Current Version  Long-Term Support version is best for applications in production  The Current Version is best for working with the newest features
  • 7. Node REPL Environment  REPL stands for Read, Evaluate, Print, Loop  Allows the user to enter a JavaScript command, evaluate it, print the results, and loop to enter another command  Supports multiline commands, customize command prompt and preconfigured context  Sessions can be saved, and reloaded again  Useful for learning JavaScript or executing tasks from a JavaScript command line
  • 8. Node.js Programs  Node.js programs can be created using JavaScript files which are executed with the Node.js executable  JavaScript files contain JavaScript programming statements and expressions, and have a filename extension of ‘.js’  To execute a Node.js program, run the Node.js executable for the given environment and pass the name of the file (with or without the JS extension) as the first argument
  • 9. Managing Packages with NPM  NPM is an acronym for Node.js Package Manager  NPM provides a public package repository, a specification for building packages, and a command line tool for working with packages  http://www.npmjs.com  The company npm, Inc. develops and maintains NPM  Node.js distributes the npm executable along with the node executable, but it's actually a separate program with its own versioning
  • 11. Local vs Global Packages  Packages can be installed locally or globally  Local packages are stored locally in a project, in the node_modules folder  Global packages are stored globally on system  Typically, local packages are code libraries used by project  Typically, global packages are executables used to perform some operation on a project such as running tasks  Local packages are available only within their specific project, and global packages are available system wide
  • 12. Installing & Uninstalling Packages  The npm program is used to manage packages  The first argument to the npm program is the command to be executed  Packages can be installed with the install command, and uninstalled with the uninstall command  There are many more commands available for NPM • The –global flag installs and uninstalls the package globally, without the global flag, the packages are installed and uninstalled locally
  • 13. Global Packages on Windows  Are global to the user, not the system  Does not require administrative privileges Globally Installed Packages are stored in: C:Users<username>AppDataRoamingnpm
  • 14. Global Packages on Mac and Linux  By default, are global to the system, not just the user  Requires administrative privileges, unless permissions are fixed On a Mac by default, Globally Installed Packages are stored in: /usr/local/lib/node_modules
  • 15. Fixing Permissions for Global Packages https://docs.npmjs.com/getting-started/fixing-npm-permissions
  • 16. Building a Simple Web Server  One of the core modules for Node.js is the HTTP module, which provides a web server and web client  The web server is very flexible, but requires a lot of boiler plate coding to build even the simplest applications  Web server are I/O intensive applications making them well suited for Node.js  Node.js is great for web servers because of its easy handling of JSON data
  • 17. Reading Files from Disk  Node.js allows full access to the system (such as accessing the file system)  Accessing file system resources can be synchronously and asynchronously  Synchronous access can be used for initial program loading, but only asynchronous access should be used during program operation  Both text and binary data can read and written  Full support for streams
  • 18. Debugging Node.js  Node.js comes with a built in command line debugger, but its limited  Instead, there are many code editors and other tools which greatly simplify debugging of Node.js applications  StrongLoop's Node Inspector (free – Windows/Mac/Linux)  Microsoft Visual Studio Code (free – Windows/Mac/Linux)  Microsoft Visual Studio with Node.js Extension (community edition free – Windows only)  GitHub's Atom with Node Debugger Package (free – Windows/Mac/Linux)  JetBrains' WebStorm (not free – Windows/Mac/Linux)  These IDEs provide the standard fare of debugging tools such as breakpoint, call stacks, watches, and local variables
  • 20. Microsoft's Visual Studio Code https://code.visualstudio.com
  • 21. Microsoft's Visual Studio with Node.js Extension https://www.visualstudio.com/products/visual-studio-community-vs
  • 22. GitHub's Atom with the Node Debugger Package https://atom.io
  • 24. Creating a Package  All projects (which are also packages) need to be configured to work with NPM  The command npm init is used to configure a project  It will ask a series of questions, all of which have default answers, that are used to create and initialize a package.json file  The package.json file contains metadata about the project, as well as, a list of application and development dependencies  When NPM packages are installed, NPM will register them with the package.json file
  • 25. Saving Package Dependencies  Simply installing packages do not save the dependency in the package.json file  In addition to installing, additional flags need to be specified:  --save or -S will save the package as an application dependency  --save-dev or -D will save the package a development dependency  Application dependencies are used by the Node.js program when executing (common example would be Express)  Development dependencies are used to develop the Node.js program (common example would be Grunt)
  • 26. Saving Package Dependencies • The terminal commands to left, will produce a package.json file similar to the one on the right. • The file is a JSON file, and can be edited by hand • Name is the name of the package • Version follows the SEMVER scheme • The version of each dependency is tracked as well • Main is the main file imported when requiring the module Terminal Commands Package.json
  • 27. Use NPM to run a package  In addition to managing packages with NPM, packages can be configured to be executed with NPM  To configure the execution of Node packages, the scripts option of the package.json is configured  To run a Node.js program, the start script is configured
  • 28. Conclusion  Node.js is a great platform building applications, especially applications which are I/O intensive  Working with Node.js involves many tools for managing packages, debugging code, and packaging projects for deployment  The Node Package Manager (NPM) is used to install packages, and divide applications into smaller reusable parts  Node.js can be used for development tooling, web applications and general purpose applications