Introduction to node.js GDD
Upcoming SlideShare
Loading in...5
×
 

Introduction to node.js GDD

on

  • 5,751 views

Slides from my workshop about node.js which I conducted in Girl Geek Dinner Bangalore. More details at http://sudarmuthu.com/blog/introduction-to-node-js-at-yahoo-girl-geek-dinner

Slides from my workshop about node.js which I conducted in Girl Geek Dinner Bangalore. More details at http://sudarmuthu.com/blog/introduction-to-node-js-at-yahoo-girl-geek-dinner

Statistics

Views

Total Views
5,751
Views on SlideShare
5,643
Embed Views
108

Actions

Likes
11
Downloads
117
Comments
2

5 Embeds 108

http://techiehacks.anthonyraj.net 101
http://5745068949524065598_4863fd176757ca2cb9621e4aee88686831f85d13.blogspot.com 3
https://twitter.com 2
http://twitter.com 1
http://sudarmuthu.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

CC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • 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
    Processing…
  • 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
    Processing…
Post Comment
Edit your comment

Introduction to node.js GDD Introduction to node.js GDD Presentation Transcript

  • Introduction to Node.js Sudar Muthu (@sudarmuthu) Research Engineer Yahoo! Labs http://github.com/sudar http://sudarmuthu.com
  • 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
  • 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.
  • 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
  • What is Evented I/O
  • Single thread Synchronous I/O
  • Single thread Synchronous I/O
  • Multi thread Synchronous I/O
  • Multi thread Synchronous I/O
  • You can throw in more servers, but that will cost you lot of money.
  • Synchronous I/O
  • Synchronous I/O
  • Synchronous I/O
  • Single thread Asynchronous I/O
  • Why Node.JS?So, code like thisvar result = db.query("select..");// use resulteither blocks the entire process orimplies multiple execution stacks (threads).
  • 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.
  • Demo of Callback// execute the callback after 2 secondssetTimeout(function () { console.log("World!");}, 2000);// print in consoleconsole.log("Hello");https://github.com/sudar/node.js-samples/blob/master/callback.js
  • 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)
  • Node.JS – as an interactive shellSimilar to Python’s shell$> node>3+14> true != falsetrue>.help>.exit
  • 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, "127.0.0.1"); // listen on port 1337// debug informationconsole.log(Server running at http://127.0.0.1:1337/);https://github.com/sudar/node.js-samples/blob/master/http-server.js
  • Node.JS – As a clientvar http = require(http); // require the needed modules// make the request objectvar request = http.request({ host: sudarmuthu.com, 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); });});https://github.com/sudar/node.js-samples/blob/master/http-client.js
  • Core Modules Processes Filesystem Networking UtilitiesThe entire list can be found at http://nodejs.org/api/
  • Core Modules - ProcessesNode allows you to analyze your process and manage external processAvailable Modules process child_processCode samples: https://github.com/sudar/node.js- samples/blob/master/process.js
  • Core Modules - FilesystemLow level API to manipulate filesAvailable Modules fs pathCode Samples: https://github.com/sudar/node.js- samples/blob/master/filesystem.js
  • Core Modules - Networking Available Modules  net  dgram  http  tls  https  dns Code Samples: https://github.com/sudar/node.js- samples/blob/master/dns.js
  • Core Modules - Utilities Provides utility methods Available Modules  console  util Code Samples: https://github.com/sudar/node.js- samples/blob/master/console.js
  • 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
  • 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
  • Links http://github.com/sudar/node.js-samples (all code samples used in this talk) http://nodejs.org http://npmjs.org http://expressjs.com http://socket.io
  • Workshop
  • 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
  • Hello World Express Apphttps://github.com/sudar/node.js-samples/tree/master/express/hello-world
  • 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 clienthttps://github.com/ericf/square-thing-app
  • Thank you