Introduction
To
Prepared By
Jiban
jiban@cslsoft.com
Plan
• What is Node.JS
• Event Driven
• Blocking Vs. No Blocking
• What can I do in node
• Install node.js
• A simple node.js example
• Create a web Server using Node.js
• Some node.js frameworks
• A demo with express.js
• Who Uses node.js
What is Node?
• JavaScript based software system
• Event driven
• Non- blocking
• Launched in 2009
• Founded by Ryan Dahl
I/O Event-loop based server
• A tale about bunnies, hamsters and
Squids…
A hamster visiting your site
Single threaded bunny
(a happy bunny)
Your web server
Impatient hamsters
Single threaded bunny
Your web server
(a busy bunny!)
Multi-threaded bunny
Your web server
Fetching
database (2s)
Consuming
Service (3s)
Writing to a file
(3s)
Event-loop based server
Hyperactive squid
Constantly check
who is idle doing
nothing or waiting
Node.js runs on the event loop
• The event loop keeps on running. Checking for
new events, so it can call callbacks for those
events.
Blocking vs. Non-Blocking
Doctor’s Surgery vs. Fast-food Outlet
Doctor’s Surgery
(Blocking Process)
Fast-food Outlet
(Non-blocking Process)
Non-Blocking? Blocking? I’m so confused
• By introducing callbacks. Node can move on to
other requests and whenever the callback is
called, node will process is.
• You should read non-blocking code as « put
function and params in queue and fire
callback when you reach the end of the
queue »
• Blocking= return Non-Blocking= no return.
Only callbacks
Well, That’s Node.js
What Can I Do in Node?
• Anything you want!
• Chat servers, Analytics & Crazy fast backends
• Socket.io library is a wicked way to build real
time apps
• Build a social Network! LinkedIn, Dropbox all
using Node.js
Using Modules
• In node.js require(‘ ’) is using a lot.
• Require is basically a way to import modules
to your application. Modules are basically
classes.
• They are a module of code that contain
functions which have been exported.
• Exported functions are basically public.
Install node.js
• Go to the NodeJS home page
• Click install to download the .msi installer
package
• Run it and follow the instrucitons, you now
have NPM (node package manager) and
Node.js installed
• Reset your computer to get everything
working in your command-line interface (CLI)
A simple node.js application
var http = require("http");
var server = http.createServer();
server.listen(8888);
function say(word) {
console.log(word);
}
function execute(someFunction, value) {
someFunction(value);
}
execute(say, "Beautiful Bangladesh");
Creating a web server
with
node.js
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/');
Node.js Frameworks
Node.js is one of the most popular javascript
framework that allow to build scalable network
web applications. Node.js contains a different
kind of frameworks such as MVC framework, full-
stack framework, REST API and generators, lots of
libraries as server library that making it possible
to sun a web server without use of external
software such as Apache and Lighttpd. These
frameworks makes it more user-friendly and easy
to use, also supports a large number of features
and functionality to develop huge web
applications in just follow few steps.
Sails.js
Sails is one of the excellent framework that
make it easy to develop custom, enterprise-
grade and modern Node.js apps, also it’s good
for building charts, dashboards and multiple
games.
Total.js
Total.js is another great framework for
Node.js helps to create web pages and web
applications, also supports MVC architecture.
This is the open source modern framework
for building websites using HTML, javaScript
and CSS.
Partial.js
Partial js, framework for Node.js, Using HTML,
CSS and JavaScript developers can build large
scale of web applications and websites.
Features and architecture are same as total.js.
Koa.js
This framework for Node.js is designed by
team of Express. Koa.js is next generation
tool, which aims to be a smaller, more
expressive, and more robust foundation for
web applications and APIs.
Locomotive.js
Locomotive supports MVC pattern, RESTful
routes also builds on Express. This is one of
the most powerful web framework for
Node.js, present great features : -
1) convention over configuration
2) Routing Helpers
3) MVC Architecture
4) connect to any Database and more.
Express.js
Most Popular web framework for Node.js over
the internet and among web developers. Using
robust set of features developers can
create single and multi-page, and hybrid web
applications.
Flatiron.js
Flatiron.js is also a modern and next
generation web framework for developers that
helps to building impressive and huge web
application with its advance features.
Express.io
Express.io is realtime web framework for
Node.js. And also supports MVC architecture
for create web applications.
Socket Stream
Socket stream is dedicated to building real
time single page applications with its fast and
modular nature.
Geddy.js
Geddy.js is simple, structured and original MVC
web framework for Node.js for building
advance web application.
Demo
Create An
Application Using
Express.js
Companies using node
https://github.com/joyent/node/wiki/Projects,-Applications,-and-Companies-Using-Node
Thank you
jiban@cslsoft.com

Introduction to node.js by jiban

  • 1.
  • 2.
    Plan • What isNode.JS • Event Driven • Blocking Vs. No Blocking • What can I do in node • Install node.js • A simple node.js example • Create a web Server using Node.js • Some node.js frameworks • A demo with express.js • Who Uses node.js
  • 3.
    What is Node? •JavaScript based software system • Event driven • Non- blocking • Launched in 2009 • Founded by Ryan Dahl
  • 4.
    I/O Event-loop basedserver • A tale about bunnies, hamsters and Squids…
  • 5.
    A hamster visitingyour site Single threaded bunny (a happy bunny) Your web server
  • 6.
    Impatient hamsters Single threadedbunny Your web server (a busy bunny!)
  • 7.
    Multi-threaded bunny Your webserver Fetching database (2s) Consuming Service (3s) Writing to a file (3s)
  • 8.
    Event-loop based server Hyperactivesquid Constantly check who is idle doing nothing or waiting
  • 9.
    Node.js runs onthe event loop • The event loop keeps on running. Checking for new events, so it can call callbacks for those events.
  • 10.
    Blocking vs. Non-Blocking Doctor’sSurgery vs. Fast-food Outlet
  • 11.
  • 12.
  • 13.
    Non-Blocking? Blocking? I’mso confused • By introducing callbacks. Node can move on to other requests and whenever the callback is called, node will process is. • You should read non-blocking code as « put function and params in queue and fire callback when you reach the end of the queue » • Blocking= return Non-Blocking= no return. Only callbacks
  • 14.
  • 15.
    What Can IDo in Node? • Anything you want! • Chat servers, Analytics & Crazy fast backends • Socket.io library is a wicked way to build real time apps • Build a social Network! LinkedIn, Dropbox all using Node.js
  • 16.
    Using Modules • Innode.js require(‘ ’) is using a lot. • Require is basically a way to import modules to your application. Modules are basically classes. • They are a module of code that contain functions which have been exported. • Exported functions are basically public.
  • 17.
    Install node.js • Goto the NodeJS home page • Click install to download the .msi installer package • Run it and follow the instrucitons, you now have NPM (node package manager) and Node.js installed • Reset your computer to get everything working in your command-line interface (CLI)
  • 18.
    A simple node.jsapplication var http = require("http"); var server = http.createServer(); server.listen(8888); function say(word) { console.log(word); } function execute(someFunction, value) { someFunction(value); } execute(say, "Beautiful Bangladesh");
  • 19.
    Creating a webserver with node.js 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/');
  • 21.
    Node.js Frameworks Node.js isone of the most popular javascript framework that allow to build scalable network web applications. Node.js contains a different kind of frameworks such as MVC framework, full- stack framework, REST API and generators, lots of libraries as server library that making it possible to sun a web server without use of external software such as Apache and Lighttpd. These frameworks makes it more user-friendly and easy to use, also supports a large number of features and functionality to develop huge web applications in just follow few steps.
  • 22.
    Sails.js Sails is oneof the excellent framework that make it easy to develop custom, enterprise- grade and modern Node.js apps, also it’s good for building charts, dashboards and multiple games.
  • 23.
    Total.js Total.js is anothergreat framework for Node.js helps to create web pages and web applications, also supports MVC architecture. This is the open source modern framework for building websites using HTML, javaScript and CSS.
  • 24.
    Partial.js Partial js, frameworkfor Node.js, Using HTML, CSS and JavaScript developers can build large scale of web applications and websites. Features and architecture are same as total.js.
  • 25.
    Koa.js This framework forNode.js is designed by team of Express. Koa.js is next generation tool, which aims to be a smaller, more expressive, and more robust foundation for web applications and APIs.
  • 26.
    Locomotive.js Locomotive supports MVCpattern, RESTful routes also builds on Express. This is one of the most powerful web framework for Node.js, present great features : - 1) convention over configuration 2) Routing Helpers 3) MVC Architecture 4) connect to any Database and more.
  • 27.
    Express.js Most Popular webframework for Node.js over the internet and among web developers. Using robust set of features developers can create single and multi-page, and hybrid web applications.
  • 28.
    Flatiron.js Flatiron.js is alsoa modern and next generation web framework for developers that helps to building impressive and huge web application with its advance features.
  • 29.
    Express.io Express.io is realtimeweb framework for Node.js. And also supports MVC architecture for create web applications.
  • 30.
    Socket Stream Socket streamis dedicated to building real time single page applications with its fast and modular nature.
  • 31.
    Geddy.js Geddy.js is simple,structured and original MVC web framework for Node.js for building advance web application.
  • 32.
  • 33.
  • 34.