Node js beginner


Published on

  • Be the first to comment

Node js beginner

  1. 1. Node.js (Advanced) Suresh Reddy Senior Software Engineer Echidna, Inc.
  2. 2. Agenda What is Node.JS Using Node.JS Common Modules Streams Express Load balancing Competitors References
  3. 3. What is Node.JS JavaScript programming environment for creating highly scalable network programs Provides evented, Non-blocking I/O Built on top of V8 Node.JS is bare bone and the community are making stuff like Express, connect etc.
  4. 4. What is Node.JSEvent driven programming $.ajax( url:, type:GET, contentType:application/json, success:function(response){// doWithResponse }, error:function(xhr){// Error :( } );
  5. 5. Using Node.JS Install Node.JS  wget  gunzip node-v0.1.96.tar.gz  cd node  ./configure  make  make install NPM  Install/Publish other modules you want by doing  npm install <module_name>  npm publish <module_name>
  6. 6. Node.JS – as an interactive shellSimilar to Python’s shell$> node>3+14> true != falsetrue>.help>.exit
  7. 7. Node.JS – As a servervar 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 at127.0.0.1:1337);
  8. 8. Core Modules Processes Filesystem Networking UtilitiesThe entire list can be found at
  9. 9. Core Modules - ProcessesNode allows you to analyze your process and manage external processAvailable Modules process child_process
  10. 10. Core Modules - FilesystemLow level API to manipulate filesAvailable Modules fs path
  11. 11. Core Modules - Networking Available Modules  net  dgram  http  tls  https  dns
  12. 12. Express Basic web framework Runs on top of Node.js Provides routing and redirection helpers Dynamic view helpers Has support for session Focus on high performance
  13. 13. Hello World Express App
  14. 14. Streams Stream instances are Unix pipes Readable  must emit ”data” events whenever they have data to be read and ”end” when the data stream is finished. Writable  must implement the write() method to accept new data chunks into the stream and the end() method to instruct the stream that the data is finished.
  15. 15. 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
  16. 16. Load BalancingThe ability to distribute work load across multiple servers HAProxy Nginix Apache Http server
  17. 17. Other Asynchronous JavaScriptplatforms Tornado and Twisted for Python Perl Object Environment for Perl libevent for C Vert.x for Java EventMachine for Ruby vibe.d for D
  18. 18. Links
  19. 19. Thank you