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

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

Jan 28, 2015

Download

Technology

Nurul Ferdous

JSCon 2011, arranged by phpXperts. held in American International University Bangladesh.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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