Intro to Node.js
Intro to Node.js
What is Node.js
Writing Node
The fs Module
What is Node.js for?
Full Stack Engineering
Components of The “Stack”
THE CLIENT SIDE
Consuming APIs,
Client Routing
THE INTERNET
HTTP protocol
IP protocol
DNS
CDNs
Networking
THE SERVER SIDE
Request Routing,
Asset Delivery,
Creating APIs,
Databases,
Data Processing
Remember This?
Full Stack Engineering
Components of The “Stack”
THE CLIENT SIDE
Consuming APIs,
Client Routing
THE INTERNET
HTTP protocol
IP protocol
DNS
CDNs
Networking
THE SERVER SIDE
Request Routing,
Asset Delivery,
Creating APIs,
Databases,
Data Processing
Node.js - The Server Side
THE SERVER SIDE
Request Routing,
Asset Delivery,
Creating APIs,
Databases,
Data Processing
Node is really just
A program
Node is really just
A program
That runs on your computer
Node is really just
A program
That runs on your computer
That executes JavaScript
Node is really just
A program
That runs on your computer
That executes JavaScript
ECMAScript 2015... ish
Not your grandmother's JavaScript
ECMAScript 2015... ish
No access to Browser APIs
document
window
New Features!
Module System!
Node Package Manager (NPM)
Node.js - Components
Node.js - Components
$ node
- A program on your computer that runs JavaScript
Node.js - Components
$ node
- A program on your computer that runs JavaScript
$ npm
- Node Package Manager, like `brew` for node!
$ node
var greeting = "Hello, ";
console.log(greeting + "class!");
To start:
$ node greeting.js
Hello, class!
greeting.js:
$ node
What's the point of all this?
$ node
$ node
APIs
Filesystem
HTTP / HTTPS
OS
C / C++ Wrappers (for Internet of Things!)
Network
$ node
is event-driven
$ node
is event-driven
Asynchronous I/O
Single-Threaded
$ node
Using
moduleName.asyncMethod("param1", function(err, data) {
//err will be empty if there was no error
if (!err) {
doSomethingWith(data);
} else {
console.log("there was an error!" + err);
}
});
A typical node.js pattern - Async I/O
These do something asynchronous, and then execute a callback
$ node
Using
var eventEmitter = moduleName.createEventEmitter("thing");
eventEmitter.on("someEvent", function(err, data){
console.log(err);
console.log(data);
});
eventEmitter.on("someOtherEvent", function(err, result) {
if (err) throw err;
console.log(result);
});
A typical node.js pattern - Evented I/O
These events can happen in any order!
$ node
Using
Using Modules
var myModule = require("aModule");
module.doSomething()
var thing = module.createSomething();
thing.on("event", function(){
// do something
});
thing.doSomethingAsync(params, function(){
// do something when done
});
$ node
APIs
var os = require("os");
os.hostname();
os.networkInterfaces();
os.uptime();
OS - just read access
$ node
APIs
Filesystem - Async pattern
var fs = require("fs");
fs.readFile("./log.txt", function(err, data){
var myFile = data.toString();
console.log(myFile)
});
$ node
APIs
var http = require("http");
var server = http.createServer();
server.on("request", function(request, response) {
response.end("Hello");
});
server.listen(9021, function(err){
if (err) {
console.log(err);
} else {
console.log("I've connected!");
}
});
HTTP / HTTPS - Evented
Intro to Node.js
By LizTheDeveloper
Intro to Node.js
- 1,732