Your SlideShare is downloading. ×
  • Like
@techmeetup Edinburgh nodejs talk
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

@techmeetup Edinburgh nodejs talk

  • 2,098 views
Published

My nodejs presentation given on 10th November 2010

My nodejs presentation given on 10th November 2010

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,098
On SlideShare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
33
Comments
0
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1.    Tane Piper - @tanepiper An Introduction To http://nodejs.org
  • 2.    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.
  • 3.    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
  • 4.    Synchronous vs Asyncronous $query="SELECT * FROM contacts"; $result=mysql_query($query); ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ File file = new File("C:MyFile.txt"); fis = new FileInputStream(file); fis.close();
  • 5.    What is the software doing?
  • 6.    x http://www.flickr.com/photos/nationaalarchief/3675431410/ What is the software doing?  It's Waiting – Wasting cycles
  • 7.    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();
  • 8.    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, "127.0.0.1"); console.log('Server running at http://127.0.0.1:1337/');
  • 9.    EventEmitter – The powerhouse of node This should look familiar to most of you: jQuery('.foo').click(function() { var foo = this.attr('rel'); });
  • 10.    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');
  • 11.    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); });
  • 12.    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
  • 13.    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
  • 14.    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);
  • 15.    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'); });
  • 16.    Something new: node-canvas
  • 17.    nodejs Community Google Groups: nodejs – General Community nodejs-dev – Low level development https://github.com/ry/node/wiki/modules
  • 18.    Thank You Any Questions?