100% found this document useful (1 vote)
110 views41 pages

Downloads - Mastering Node - JS, Part 1 - Introduction

This document provides an overview of Node.js and how to get started with it. It discusses what Node.js is, how to install it, how to use the Node REPL environment, how to write Node programs, how to manage packages with NPM, how to build a simple web server, how to read files from disk, how to debug Node programs, how to create a Node package, and how to use NPM to run a package.

Uploaded by

aruna
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
Download as pptx, pdf, or txt
100% found this document useful (1 vote)
110 views41 pages

Downloads - Mastering Node - JS, Part 1 - Introduction

This document provides an overview of Node.js and how to get started with it. It discusses what Node.js is, how to install it, how to use the Node REPL environment, how to write Node programs, how to manage packages with NPM, how to build a simple web server, how to read files from disk, how to debug Node programs, how to create a Node package, and how to use NPM to run a package.

Uploaded by

aruna
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1/ 41

Header

Microsoft Virtual Academy

Mastering Node.js, Part 1


Introduction to Node.js
Eric W. Greene

Produced by
Course Overview

What is Node.js?
Installing Node.js Building a Simple Web Server
Node REPL Reading Files from Disk
Node Programs Debugging
Managing Packages with NPM 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

Web Browser Node.js

Web Sockets DOM XHR Process File System Net

JavaScript JavaScript
File Reader Audio HTTP Cluster
V8 V8

Many Many
Timers Video Timer Stream
More… More…
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
Installing Node.js
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
Using the Node REPL Environment
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
Running Node.js Program
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 • The –global flag installs and
install command, and uninstalled with uninstalls the package globally,
the uninstall command without the global flag, the
There are many more commands packages are installed and
uninstalled locally
available for NPM
Global Packages on Windows

Are global to the user,


not the system Globally Installed Packages are stored in:
Does not require C:\Users\<username>\AppData\Roaming\npm

administrative privileges
Global Packages on Mac and Linux

By default, are global to


the system, not just the On a Mac by default, Globally Installed Packages are stored
in:
user /usr/local/lib/node_modules
Requires administrative
privileges, unless
permissions are fixed
Fixing Permissions for Global Packages

https://docs.npmjs.com/getting-started/fixing-npm-permissions
Managing Packages with NPM
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
Commonly, other packages such as Express or Hapi are used to
configure the web server
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
Building a Simple Web Server
Reading Files from Disk

Node.js allows full access to the system (such as accessing the file
system), unlike a web browser which only allows sandboxed access
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
Reading Files from Disk
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
Debugging Node.js using Node Inspector
Microsoft's Visual Studio Code

https://code.visualstudio.com
Debugging Node.js using Visual Studio Code
Microsoft's Visual Studio with Node.js Extension

https://www.visualstudio.com/products/visual-studio-community-vs
Debugging Node.js using Visual Studio with Node Extension
GitHub's Atom with the Node Debugger Package

https://atom.io
Debugging Node.js using Atom with Node Debugger Package
JetBrains' WebStorm

https://www.jetbrains.com/webstorm
Debugging Node.js using 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
Terminal Commands
produce a package.json file similar to Package.json

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
Creating a Package
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
Use NPM to run a package
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

You might also like