Nodejs
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Nodejs

  • 921 views
Uploaded on

Introduction to Node.js

Introduction to Node.js

More 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
921
On Slideshare
921
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
38
Comments
0
Likes
1

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. Author: Bhushan Patil Date: 08 Mar 2014
  • 2.    Node.js or nodejs or “node” simply is “server side JavaScript” Node.js is software platform for scalable server-side and networking applications. Allows you to build scalable network applications using JavaScript on the serverside. Node.js V8 JavaScript Runtime
  • 3.   The V8 JavaScript Engine is an open source JavaScript engine developed by Google for the Google Chrome web browser. V8 compiles JavaScript to native machine code (IA-32, x86-64, ARM, or MIPS ISAs) before executing it, instead of more traditional techniques such as executing bytecode or interpreting it.
  • 4.  “JavaScript has certain characteristics that make it very different than other dynamic languages, namely that it has no concept of threads. Its model of concurrency is completely based around events.” - Ryan Dahl (Author node.js)
  • 5.    A Web Framework For Beginners – it’s very low level Multi-threaded – You can think of it as single threaded server
  • 6.  Node js is for real-time web ◦ Node shines in real-time web applications employing push technology over websockets Vs stateless-web based on the stateless requestresponse paradigm.   Uses event-driven asynchronous callbacks Handles concurrency very well than other traditional web server
  • 7. Traditional way var result = database.query("SELECT * FROM hugetable"); console.log("Hello World"); Vs Asynchronous way database.query("SELECT * FROM hugetable", function(rows) { var result = rows; }); console.log("Hello World");
  • 8. var max var for i, a, b, c, max; = 1000000000; d = Date.now(); (i = 0; i < max; i++) { a = 1234 + 5678 + i; b = 1234 * 5678 + i; c = 1234 / 2 + i; } console.log(Date.now() - d); $a = null; $b = null; $c = null; $i = null; $max = 1000000000; $start = microtime(true); for ($i = 0; $i < $max; $i++) { $a = 1234 + 5678 + $i; $b = 1234 * 5678 + $i; $c = 1234 / 2 + $i; } var_dump(microtime(true) - $start); Time comparison in milliseconds It means PHP is 93% slower than Node.js!
  • 9.     Websocket Server - like chat application Fast File Upload Client Ad Server Any Real-Time Data Apps
  • 10.  No Need of separate Server ◦ it does not require a separate webserver like Apache or Nginx or IIS. It has an inbuilt HTTP Server library which makes it possible to run a webserver without external software, and allowing more control of how the webserver works.  Non-blocking code ◦ It does not execute line by line like other traditional languages.  Asynchronous programming ◦ Every function in Node.js is asynchronous. Therefore, everything that would normally block the thread is instead executed in the background.
  • 11. Blocking code var contents = fs.readFileSync('/etc/hosts'); console.log(contents); //Stop process until complete console.log('Doing something else'); Non-Blocking code fs.readFile('/etc/hosts', function(err, contents) { console.log(contents); }); console.log('Doing something else');
  • 12. Traditional way var result = database.query("SELECT * FROM hugetable"); console.log("Hello World"); Asynchronous way database.query("SELECT * FROM hugetable", function(rows) { var result = rows; }); console.log("Hello World");
  • 13. 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/'); If run at command prompt: % node example.js Server running at http://127.0.0.1:1337/ At browser: http://127.0.0.1:1337/ Hello World
  • 14.  npm, short for Node Package Manager, is two things: first and foremost, it is an online repository for the publishing of opensource Node.js projects; second, it is a command-line utility for interacting with said repository that aids in package installation, version management, and dependency management.
  • 15.     Some of the most popular NPM modules today are: Express - Express.js, a Sinatra-inspired web development framework for Node.js, and the defacto standard for the majority of Node.js applications out there today. connect - Connect is an extensible HTTP server framework for Node.js, providing a collection of high performance “plugins” known as middleware; serves as a base foundation for Express. socket.io and sockjs - Server-side component of the two most common websockets components out there today.
  • 16.    Jade - One of the popular templating engines, inspired by HAML, a default in Express.js. mongo and mongojs - MongoDB wrappers to provide the API for MongoDB object databases in Node.js. redis - Redis client library.
  • 17.    coffee-script - CoffeeScript compiler that allows developers to write their Node.js programs using Coffee. underscore (lodash, lazy) – The most popular utility library in JavaScript, packaged to be used with Node.js, as well as its two counterparts, which promise better performance by taking a slightly different implementation approach. forever - Probably the most common utility for ensuring that a given node script runs continuously. Keeps your Node.js process up in production in the face of any unexpected failures.
  • 18. // Include http module, var http = require('http'), // And mysql module mysql = require("mysql"); // Create the connection. // Data is default to new mysql installation and should be changed according to your configuration. var connection = mysql.createConnection({ user: "root", password: "", database: "db_name" }); // Create the http server. http.createServer(function (request, response) { // Attach listener on end event. request.on('end', function () { // Query the database. connection.query('SELECT * FROM your_table;', function (error, rows, fields) { response.writeHead(200, { 'Content-Type': 'x-application/json' }); // Send data as JSON string. // Rows variable holds the result of the query. response.end(JSON.stringify(rows)); }); }); // Listen on the 8080 port. }).listen(8080);
  • 19. And many .....
  • 20.      http://nodejs.org/ http://en.wikipedia.org/wiki/Nodejs http://node.codeschool.com/ http://stackoverflow.com/questions/235381 8/how-do-i-get-started-with-node-js http://code.tutsplus.com/tutorials/nodejsfor-beginners--net-26314