node.js

Asbjørn Sloth Tønnesen

https://veridu.com

based on a presentation by:

Paul Barry

http://paulbarry.com

Twitter: @pjb3

What is node.js?

IO - You're Doing It Wrong

Why?

Single Threaded Example

require 'socket'

server = TCPServer.new('localhost', 4242)
puts "Sleeper listening on port 4242"
while (session = server.accept)
  session << "How long should I sleep for?\n"
  session.gets.to_i.downto(1) do |n|
    $stdout << "\rSleeping #{n} "
    $stdout.flush
    sleep 1
  end
  puts "\r"
  session << "Done\n"
  session.close
end

Multi-Threaded Example

require 'socket'

server = TCPServer.new('localhost', 4242)
puts "Sleeper listening on port 4242"
while (session = server.accept)
 
Thread.new do
    session << "How long should I sleep for?\n"
    session.gets.to_i.downto(1) do |n|
      $stdout << "\rSleeping #{n} "
      $stdout.flush
      sleep 1
    end
    puts "\r"
    session << "Done\n"
    session.close
 
end
end
Mission Accomplished!

Maybe Not

There Is A Better Way

A is for Asynchronous


          $.get('ajax/test.html', function(data) {
            $('.result').html(data)
          })
        

SJAX, a.k.a FAIL-JAX


          var data = $.get('sjax/test.html')
          $('.result').html(data)
        

Event-Driven Programming


          var el = document.getElementById("foo")
          el.addEventListener("click", doSomething)
        

Advanced Evented Programming


http://jquery14.com/day-11

Code Samples

But does it scale?

Why use node.js at Veridu

For More Info


http://jsconf.eu/2009/video_nodejs_by_ryan_dahl.html

The End