NODE JS OC Meetup 1
-
Upload
eddify -
Category
Technology
-
view
628 -
download
3
description
Transcript of NODE JS OC Meetup 1
![Page 1: NODE JS OC Meetup 1](https://reader034.fdocuments.us/reader034/viewer/2022051314/54b724984a795916198b4620/html5/thumbnails/1.jpg)
Meetup #1
Farsheed & EddySponsored by Drumbi
![Page 2: NODE JS OC Meetup 1](https://reader034.fdocuments.us/reader034/viewer/2022051314/54b724984a795916198b4620/html5/thumbnails/2.jpg)
Food for Thought
● Packages per day across popular platforms
● Source: https://blog.nodejitsu.com/npm-innovation-through-modularity
![Page 3: NODE JS OC Meetup 1](https://reader034.fdocuments.us/reader034/viewer/2022051314/54b724984a795916198b4620/html5/thumbnails/3.jpg)
Who We Are
● Farsheed Atef● @captainatef● [email protected]
● Eddy Kim● @EddyDKim● [email protected]
● Drumbi ● Drumbi.com● Blog.Drumbi.com● @getdrumbi
![Page 4: NODE JS OC Meetup 1](https://reader034.fdocuments.us/reader034/viewer/2022051314/54b724984a795916198b4620/html5/thumbnails/4.jpg)
Overview
● What is Node.js● Why Node.js● Benefits● JavaScript● Modularity● Scalability● Architecture● Resources/Documentation● Hands On
![Page 5: NODE JS OC Meetup 1](https://reader034.fdocuments.us/reader034/viewer/2022051314/54b724984a795916198b4620/html5/thumbnails/5.jpg)
What is Node.js
● A framework for developing I/O based javascript server applications● Node.js is a set of bindings to the V8 javascript VM.
● V8 is Google's open source JavaScript engine.● Used in Chrome● Standalone or embedded● Octane (https://developers.google.com/octane/)
● Focused on performance
![Page 6: NODE JS OC Meetup 1](https://reader034.fdocuments.us/reader034/viewer/2022051314/54b724984a795916198b4620/html5/thumbnails/6.jpg)
Why Node.js
● Programmable Web● Internet of Devices● Requires: Scalable / Real-time
platform● Benchmark (take with grain of salt):
● 100 Concurrent clients● 1 megabyte response
● Node 822 req/sec● Nginx 708 req/sec● Thin 85 req/sec● Mongrel 4 req/sec
http = require(’http’)
Buffer = require(’buffer’).Buffer;
n = 1024*1024;
b = new Buffer(n);
for (var i = 0; i<n; i++) b[i] = 100;
http.createServer(function (req, res) {
res.writeHead(200);
res.end(b);
}).listen(80);
![Page 7: NODE JS OC Meetup 1](https://reader034.fdocuments.us/reader034/viewer/2022051314/54b724984a795916198b4620/html5/thumbnails/7.jpg)
Why Node.js
● Typical request● Request a page
● Do a bunch of client stuff● Load a bunch of static stuff● Load a bunch of dynamic stuff
● Call a web service (Network)● Call a Database (Network)● Database get data (Disk, CPU)● Format returned data (CPU, RAM)● display data (CPU, RAM)
![Page 8: NODE JS OC Meetup 1](https://reader034.fdocuments.us/reader034/viewer/2022051314/54b724984a795916198b4620/html5/thumbnails/8.jpg)
Why Node.js
● npm Packages● JavaScript on Server● Real-Time● Design Goals:
○ Built in support for DNS, HTTP, TLS
○ Stream Everything○ No function should directly
perform I/O○ Simple License MIT/BSD
● Be Careful○ Blocking operations
![Page 9: NODE JS OC Meetup 1](https://reader034.fdocuments.us/reader034/viewer/2022051314/54b724984a795916198b4620/html5/thumbnails/9.jpg)
Event Driven Programming
● Typical programming (multithreading - memory hungry):○ Ask for some data○ Wait for the person to enter○ Do something with the submitted data○ Display the results
● Functional programming:○ Ask for some data○ while waiting for the person to enter something, ask for data from someone
else, process some data, display results to someone whose data is ready.
![Page 10: NODE JS OC Meetup 1](https://reader034.fdocuments.us/reader034/viewer/2022051314/54b724984a795916198b4620/html5/thumbnails/10.jpg)
JavaScript
● First Class Functions● Lambdas● Available across all web browsers● Closures
![Page 11: NODE JS OC Meetup 1](https://reader034.fdocuments.us/reader034/viewer/2022051314/54b724984a795916198b4620/html5/thumbnails/11.jpg)
Why Javascript?
UbiquityCode Re-useExisting Skillset/Libraries
-moment js-underscore js
![Page 12: NODE JS OC Meetup 1](https://reader034.fdocuments.us/reader034/viewer/2022051314/54b724984a795916198b4620/html5/thumbnails/12.jpg)
Why Javascript?
Functions are 1st class objects
Ideally suited for Evented/Async Programming
![Page 13: NODE JS OC Meetup 1](https://reader034.fdocuments.us/reader034/viewer/2022051314/54b724984a795916198b4620/html5/thumbnails/13.jpg)
Why Javascript?
Functions as Objects in Async Programming
![Page 14: NODE JS OC Meetup 1](https://reader034.fdocuments.us/reader034/viewer/2022051314/54b724984a795916198b4620/html5/thumbnails/14.jpg)
Why Javascript?
Closures in a Nutshell● Allows Inner Functions to access variables in Outer Function
○ Very useful for event callback patterns
![Page 15: NODE JS OC Meetup 1](https://reader034.fdocuments.us/reader034/viewer/2022051314/54b724984a795916198b4620/html5/thumbnails/15.jpg)
Why Javascript?Closures in a Nutshell● Enables Data Encapsulation via local scopes
![Page 16: NODE JS OC Meetup 1](https://reader034.fdocuments.us/reader034/viewer/2022051314/54b724984a795916198b4620/html5/thumbnails/16.jpg)
Modularity
● NodeJS focuses on quality, small modules○ export via module.exports =○ import via require('moduleName')
![Page 17: NODE JS OC Meetup 1](https://reader034.fdocuments.us/reader034/viewer/2022051314/54b724984a795916198b4620/html5/thumbnails/17.jpg)
Resources
http://nodejs.org/
http://javascriptissexy.com/
http://stackoverflow.com/questions/2353818/how-do-i-get-started-with-node-js
[email protected]@drumbi.com
![Page 18: NODE JS OC Meetup 1](https://reader034.fdocuments.us/reader034/viewer/2022051314/54b724984a795916198b4620/html5/thumbnails/18.jpg)
Hands On
● Node JS Installation○ http://nodejs.org/download/
● Creating a hello world using Http Module
● Creating a web using Express Module