Your SlideShare is downloading. ×
  • Like
Introduction to node.js GDD
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

Introduction to node.js GDD


Slides from my workshop about node.js which I conducted in Girl Geek Dinner Bangalore. More details at

Slides from my workshop about node.js which I conducted in Girl Geek Dinner Bangalore. More details at

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • Just use `node client.js`. You can also change the url you are hitting in the client.js file.
    Are you sure you want to
    Your message goes here
  • hi, I just started developing on node.js. The server can be run by `node server.js`. But I couldn't get how to run the client side js. Can somebody help me out?
    Are you sure you want to
    Your message goes here
No Downloads


Total Views
On SlideShare
From Embeds
Number of Embeds



Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

    No notes for slide


  • 1. Introduction to Node.js Sudar Muthu (@sudarmuthu) Research Engineer Yahoo! Labs
  • 2. Agenda What Node.JS is not What is Node.JS Why Node.JS? Using Node.JS › As a interactive shell › As a Server › As a Client Common Modules Terminologies Workshop
  • 3. Node.JS is not … Ruby on Rails Django Codeigniter CakePHP Node.JS is bare bone and the community are making stuff like Express, connect etc.
  • 4. What is Node.JS JavaScript Programming Environment for creating highly scalable network programs Provides Evented, non-blocking I/O Built on top of V8 engine Supports C/C++ based addons Supports CommonJS Module format Is fast .. in fact very fast. Similar to Event machine in Ruby or Twisted in Python
  • 5. What is Evented I/O
  • 6. Single thread Synchronous I/O
  • 7. Single thread Synchronous I/O
  • 8. Multi thread Synchronous I/O
  • 9. Multi thread Synchronous I/O
  • 10. You can throw in more servers, but that will cost you lot of money.
  • 11. Synchronous I/O
  • 12. Synchronous I/O
  • 13. Synchronous I/O
  • 14. Single thread Asynchronous I/O
  • 15. Why Node.JS?So, code like thisvar result = db.query("select..");// use resulteither blocks the entire process orimplies multiple execution stacks (threads).
  • 16. Why Node.JS?But code like thisdb.query("select..", function (result) { // use result});allows the program to return to the event loop immediately. No more unnecessary threads.
  • 17. Demo of Callback// execute the callback after 2 secondssetTimeout(function () { console.log("World!");}, 2000);// print in consoleconsole.log("Hello");
  • 18. Using Node.JS Install Node.JS Install NPM Install other modules you want by doingnpm install <module_name> You are good to go(This setup is already done for you. Use the Ubuntu image in thepen drive)
  • 19. Node.JS – as an interactive shellSimilar to Python’s shell$> node>3+14> true != falsetrue>.help>.exit
  • 20. Node.JS – As a servervar http = require(http); // require the http module// create a serverhttp.createServer(function (req, res) { // call this function when a request is received res.writeHead(200, { Content-Type: text/plain }); // send this as part of the response res.end(Hello Worldn);}).listen(1337, ""); // listen on port 1337// debug informationconsole.log(Server running at;
  • 21. Node.JS – As a clientvar http = require(http); // require the needed modules// make the request objectvar request = http.request({ host:, port: 80, path: /, method: GET});// assign callbacksrequest.on(response, function (response) { console.log(Response Status Code: + response.statusCode); response.on(data, function (data) { console.log(Body: + data); });});
  • 22. Core Modules Processes Filesystem Networking UtilitiesThe entire list can be found at
  • 23. Core Modules - ProcessesNode allows you to analyze your process and manage external processAvailable Modules process child_processCode samples: samples/blob/master/process.js
  • 24. Core Modules - FilesystemLow level API to manipulate filesAvailable Modules fs pathCode Samples: samples/blob/master/filesystem.js
  • 25. Core Modules - Networking Available Modules  net  dgram  http  tls  https  dns Code Samples: samples/blob/master/dns.js
  • 26. Core Modules - Utilities Provides utility methods Available Modules  console  util Code Samples: samples/blob/master/console.js
  • 27. Node.JS is useful for.. Writing highly concurrent server applications Sharing application logic between server and client Peer-to-peer web applications using websockets Real-time applications
  • 28. Terminologies NPM – Package manager (like apt-get) Modules – Plugins or add-ons for Node.JS Express – MVC framework (like RoR) Jade – Template Engine (like Smarty) Socket.IO – A websockets Library
  • 29. Links (all code samples used in this talk)
  • 30. Workshop
  • 31. Express JS Basic web framework Runs on top of node.js Provides routing and redirection helpers Dynamic view helpers Has support for sessions Focus on high performance
  • 32. Hello World Express App
  • 33. Square Things App Allows you to choose the color of a square region A very simple server implementation A very simple client MVC implementation Uses node.js on the server Uses Y.App implementation on the client
  • 34. Thank you