35
NodeJS JS as a Server-side Language NewsCred Iraj Islam @irajislam Nurul Ferdous @ferdous Saturday, September 17, 2011

JavaScript as a Server side language (NodeJS): JSConf 2011, Dhaka

Embed Size (px)

DESCRIPTION

JSCon 2011, arranged by phpXperts. held in American International University Bangladesh.

Citation preview

Page 1: JavaScript as a Server side language (NodeJS): JSConf 2011, Dhaka

NodeJSJS as a Server-side Language

NewsCred

Iraj Islam @irajislam

Nurul Ferdous @ferdous

Saturday, September 17, 2011

Page 2: JavaScript as a Server side language (NodeJS): JSConf 2011, Dhaka

Agenda

• Part 1. NodeJS

• Part 2. ExpressJS

• Questions?

NewsCred

Saturday, September 17, 2011

Page 3: JavaScript as a Server side language (NodeJS): JSConf 2011, Dhaka

Who We Are NewsCred

Iraj IslamCTO/Co-founder, NewsCred

Nurul FerdousSenior Software Engineer, NewsCred

Saturday, September 17, 2011

Page 4: JavaScript as a Server side language (NodeJS): JSConf 2011, Dhaka

Part 1NodeJS

NewsCred

Saturday, September 17, 2011

Page 5: JavaScript as a Server side language (NodeJS): JSConf 2011, Dhaka

Server-side JS NewsCred

Saturday, September 17, 2011

Page 6: JavaScript as a Server side language (NodeJS): JSConf 2011, Dhaka

What’s NodeJS? NewsCred

NodeJSWhat’s this all about?

Saturday, September 17, 2011

Page 7: JavaScript as a Server side language (NodeJS): JSConf 2011, Dhaka

What’s NodeJS? NewsCred

NodeJSEvented I/O for V8 JavaScript.

Saturday, September 17, 2011

Page 8: JavaScript as a Server side language (NodeJS): JSConf 2011, Dhaka

What’s NodeJS? NewsCred

Goal“Provide an easy way to build scalable

network programs.”

Saturday, September 17, 2011

Page 9: JavaScript as a Server side language (NodeJS): JSConf 2011, Dhaka

History NewsCred

The Evolution of the WebFrom static pages to real time data.

Saturday, September 17, 2011

Page 10: JavaScript as a Server side language (NodeJS): JSConf 2011, Dhaka

Why NodeJS? NewsCred

The Age of Big DataExabytes (1018) of data stored per year

0

250

500

750

1000

20062007

20082009

2010

Saturday, September 17, 2011

Page 11: JavaScript as a Server side language (NodeJS): JSConf 2011, Dhaka

Why NodeJS? NewsCred

The Fast Food AnalogySynchronous vs. Asynchronous

Saturday, September 17, 2011

Page 12: JavaScript as a Server side language (NodeJS): JSConf 2011, Dhaka

Why NodeJS? NewsCred

The Apache SolutionSynchronous I/O

readFile();

Application

MySQL

User FileSystem

getTweets();

writeToDb();

Twitter API

Saturday, September 17, 2011

Page 13: JavaScript as a Server side language (NodeJS): JSConf 2011, Dhaka

Why NodeJS? NewsCred

The Apache SolutionBlocking I/O

readFile();

Application

MySQL

User FileSystem

Waiting...

getTweets();

Waiting...

writeToDb();

Twitter API

Saturday, September 17, 2011

Page 14: JavaScript as a Server side language (NodeJS): JSConf 2011, Dhaka

Why NodeJS? NewsCred

The NodeJS SolutionAsynchronous I/O

readFile();

Application

MySQL

User FileSystem

getTweets();

writeToDb();

Twitter API

Saturday, September 17, 2011

Page 15: JavaScript as a Server side language (NodeJS): JSConf 2011, Dhaka

Why NodeJS? NewsCred

The NodeJS SolutionNon-blocking I/O

readFile();

Application

MySQL

User FileSystem

getTweets();

writeToDb();

Twitter API

Saturday, September 17, 2011

Page 16: JavaScript as a Server side language (NodeJS): JSConf 2011, Dhaka

NodeJS Benefits NewsCred

• Fast• Built on top of Google’s V8 JavaScript engine.

• Scalable• Asynchronous, event-driven I/O model yields web scale.

• Programmable• JavaScript API and pluggable module architecture.

Saturday, September 17, 2011

Page 17: JavaScript as a Server side language (NodeJS): JSConf 2011, Dhaka

• Serving APIs

• Serving real-time apps

• Serving web apps

• Streaming data

NodeJS Use Cases NewsCred

Saturday, September 17, 2011

Page 18: JavaScript as a Server side language (NodeJS): JSConf 2011, Dhaka

NodeJS “Hello World!” NewsCred

var http = require('http');

http.createServer(function (request, response) { response.writeHead(200, {'Content-Type':

'text/plain'}); response.writeHead('Hello World!');}).listen(1337, '127.0.0.1');

Saturday, September 17, 2011

Page 19: JavaScript as a Server side language (NodeJS): JSConf 2011, Dhaka

Who’s Using NodeJS? NewsCred

Saturday, September 17, 2011

Page 20: JavaScript as a Server side language (NodeJS): JSConf 2011, Dhaka

Installing NodeJS NewsCred

• Installing on Unix

• Installing on Windows• Run http://nodejs.org/dist/v0.5.6/node.exe

Saturday, September 17, 2011

Page 21: JavaScript as a Server side language (NodeJS): JSConf 2011, Dhaka

Installing npm NewsCred

• Node Package Manager (npm)

• One line install:• curl http://npmjs.org/install.sh | sudo sh

• Multi-line install:• Get the code from http://github.com/isaacs/npm

• Do what the REAMME says

Saturday, September 17, 2011

Page 22: JavaScript as a Server side language (NodeJS): JSConf 2011, Dhaka

Part 2ExpressJS

NewsCred

Saturday, September 17, 2011

Page 23: JavaScript as a Server side language (NodeJS): JSConf 2011, Dhaka

What’s ExpressJS? NewsCred

ExpressJSHigh-performance NodeJS

web framework.

Saturday, September 17, 2011

Page 24: JavaScript as a Server side language (NodeJS): JSConf 2011, Dhaka

Why ExpressJS? NewsCred

• Full blown feature set• Routing

• View rendering/templating

• Sessions

• Good documentation• Lots of examples

• Many extensions

Saturday, September 17, 2011

Page 25: JavaScript as a Server side language (NodeJS): JSConf 2011, Dhaka

Installing ExpressJS NewsCred

Saturday, September 17, 2011

Page 26: JavaScript as a Server side language (NodeJS): JSConf 2011, Dhaka

Directory Structure NewsCred

Saturday, September 17, 2011

Page 27: JavaScript as a Server side language (NodeJS): JSConf 2011, Dhaka

Configuration NewsCred

Saturday, September 17, 2011

Page 28: JavaScript as a Server side language (NodeJS): JSConf 2011, Dhaka

Application Settings NewsCred

Saturday, September 17, 2011

Page 29: JavaScript as a Server side language (NodeJS): JSConf 2011, Dhaka

Routing NewsCred

Saturday, September 17, 2011

Page 30: JavaScript as a Server side language (NodeJS): JSConf 2011, Dhaka

View Rendering NewsCred

• Haml templates• Haml

• Jade

• Embedded JavaScript (EJS) templates

• Coffeekup templates• Uses CoffeeScript

• jQuery templates

Saturday, September 17, 2011

Page 31: JavaScript as a Server side language (NodeJS): JSConf 2011, Dhaka

Views with Jade NewsCred

Saturday, September 17, 2011

Page 32: JavaScript as a Server side language (NodeJS): JSConf 2011, Dhaka

Sessions NewsCred

• Currently cookie-based• Data store can be Redis, memory etc.

Saturday, September 17, 2011

Page 33: JavaScript as a Server side language (NodeJS): JSConf 2011, Dhaka

Packages NewsCred

$ npm install -d # for installing dependancies

Saturday, September 17, 2011

Page 34: JavaScript as a Server side language (NodeJS): JSConf 2011, Dhaka

Resources NewsCred

• NodeJS• http://nodejs.org

• http://github.com/dynamicguy/node-mongo-cms

• ExpressJS• http://expressjs.com

• Sencha Connect• http://github.com/senchalabs/connect/wiki

Saturday, September 17, 2011

Page 35: JavaScript as a Server side language (NodeJS): JSConf 2011, Dhaka

Questions? NewsCred

Iraj [email protected], @irajislam

Nurul [email protected], @ferdous

Saturday, September 17, 2011