Slide 1

Slide 1 text

INTRODUCTION

Slide 2

Slide 2 text

Hi, I’m @bkeepers

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

nodejs.org Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non- blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.

Slide 5

Slide 5 text

server side JavaScript

Slide 6

Slide 6 text

$ node webserver.js var http = require('http'), server = http.createServer(); server.on('request', function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }); server.listen(1337, "127.0.0.1"); console.log('Server running at http://127.0.0.1:1337/'); webserver.js

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

event loop modules package management

Slide 9

Slide 9 text

non-blocking evented I/O

Slide 10

Slide 10 text

event driven

Slide 11

Slide 11 text

event driven Button

Slide 12

Slide 12 text

event driven Button

Slide 13

Slide 13 text

event driven Button $('button').on('click', function(event) { alert('Event Driven!') });

Slide 14

Slide 14 text

event driven server.on('request', function(req, res) { res.write(handleRequest(req)) });

Slide 15

Slide 15 text

non-blocking

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

// blocking var files = fs.readdirSync('/tmp') for(var i = 0; i < files.length; i++) { var file = files[i]; fs.unlinkSync('/tmp/' + file); console.log('successfully deleted ' + file); }

Slide 18

Slide 18 text

// blocking var files = fs.readdirSync('/tmp') for(var i = 0; i < files.length; i++) { var file = files[i]; fs.unlinkSync('/tmp/' + file); console.log('successfully deleted ' + file); } // non-blocking fs.readdir('/tmp', function(err, files) { for(var i = 0; i < files.length; i++) { var file = files[i]; fs.unlink('/tmp/' + file, function (err) { if (err) throw err; console.log('successfully deleted ' + file); }); } });

Slide 19

Slide 19 text

CommonJS modules

Slide 20

Slide 20 text

JavaScript Pollutes

Slide 21

Slide 21 text

JavaScript Pollutes string = "pollution";

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

var http = require('http');

Slide 24

Slide 24 text

hello.js module.exports = function() { return 'Hello World' };

Slide 25

Slide 25 text

$ node myapp.js myapp.js var hello = require('./hello.js'); console.log(hello());

Slide 26

Slide 26 text

package management

Slide 27

Slide 27 text

npmjs.org

Slide 28

Slide 28 text

$ npm install

Slide 29

Slide 29 text

package.json

Slide 30

Slide 30 text

package.json $ npm install { "name": "myapp", "version": "0.0.1", "dependencies": { "socket.io": "0.8.7", "coffee-script": "1.2.0", "spine": "~1.0.5" } }

Slide 31

Slide 31 text

building the simplest chat app in the world demo

Slide 32

Slide 32 text

references

Slide 33

Slide 33 text

http://nodejs.org/api/

Slide 34

Slide 34 text

No content

Slide 35

Slide 35 text

thanks! @bkeepers