Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Like this presentation? Why not share!

@techmeetup Edinburgh nodejs talk



My nodejs presentation given on 10th November 2010

My nodejs presentation given on 10th November 2010



Total Views
Views on SlideShare
Embed Views



0 Embeds 0

No embeds



Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

    @techmeetup Edinburgh nodejs talk @techmeetup Edinburgh nodejs talk Presentation Transcript

    • An Introduction To http://nodejs.org Tane Piper - @tanepiper    
    • What Is Node? nodejs (node) is a set of bindings to the V8 javascript VM. They allow developers to script programs using asynchronous I/O in javascript. Focused on performance and memory useage through an event loop – not threads.    
    • Features of Node  Node is similar to  Ruby's Event Machine  Python's Twisted  Node takes the event model a bit further—it presents the event loop as a language construct instead of as a library.  Node simply enters the event loop after executing the input script. Node exits the event loop when there are no more callbacks to perform    
    • Synchronous vs Asyncronous $query="SELECT * FROM contacts"; $result=mysql_query($query); ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ File file = new File("C:MyFile.txt"); fis = new FileInputStream(file); fis.close();    
    • What is the software doing?    
    • What is the software doing?  It's Waiting – Wasting cycles x http://www.flickr.com/photos/nationaalarchief/3675431410/    
    • Synchronous vs Asyncronous db.query(”SELECT * FROM contacts”, function(err, rows) { rows.forEach(function(row) { console.log(row); }); }); ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ fs.readFile('techmeetup.txt', function(data) { console.log(data); }); doSomethingElseWhileNotWaiting();    
    • A HTTP Server in 4 lines var http = require('http'); http.createServer(function (req, res) {   res.writeHead(200, {'Content­Type': 'text/plain'});   res.end('Hello Worldn'); }).listen(1337, ""); console.log('Server running at');    
    • EventEmitter – The powerhouse of node This should look familiar to most of you: jQuery('.foo').click(function() { var foo = this.attr('rel'); });    
    • EventEmitter – The powerhouse of node var EventEmitter = require('events').EventEmitter; var emitter = new EventEmitter; emitter.on('name', function(data){     console.log(data + ' rocks'); }); emitter.emit('name', 'nodejs'); emitter.emit('name', 'techmeetup');    
    • EventEmitter – A I/O Example var spawn = require('child_process').spawn,     ls    = spawn('ls', ['­lh', '/usr']); ls.stdout.on('data', function (data) {   console.log('stdout: ' + data); }); ls.stderr.on('data', function (data) {   console.log('stderr: ' + data); }); ls.on('exit', function (code) {   console.log('child proc exited with code ' + code); });    
    • NPM – Node Package Manager https://github.com/isaacs/npm Used to install and publish your node programs. JSON package format that It manages dependencies. Integrates nicely with man pages    
    • ExpressJS – Nodejs-powered framework npm install express Robust routing Redirection helpers Dynamic view helpers Application level view options Content negotiation Focus on high performance View rendering and partials support Environment based configuration Session based flash notifications    
    • ExpressJS - Example Var express = require('express'); var app = express.createServer(); app.get('/', function(req, res, next){     res.send('Hello World'); }); app.post('/:name', function(req, res, next) { var name = req.params.name;    If (!name) {      next(new Error('No name passed');    } else {      res.send(['Hello', name].join(' '));    } }); app.listen(3000);    
    • Something new: node-canvas var Canvas = require('canvas')   , canvas = new Canvas(200,200)   , ctx = canvas.getContext('2d'); var fs = require('fs')   , out = fs.createWriteStream(__dirname + '/text.png')   , stream = canvas.createPNGStream(); ctx.font = '30px Droid Sans'; ctx.rotate(.1); ctx.fillText("Yay Techmeet Edinburgh!", 50, 100); stream.on('data', function(chunk){   out.write(chunk); }); stream.on('end', function(){   console.log('saved png'); });    
    • Something new: node-canvas    
    • nodejs Community Google Groups: nodejs – General Community nodejs-dev – Low level development https://github.com/ry/node/wiki/modules    
    • Thank You Any Questions?