build app with nodejs - ywc workshop

Post on 21-Jan-2018

224 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Node.js For BeginnerKao #YWC9

Software Engineer @ jitta.com

What is Node.js• Created by Ryan Dahl in 2009

• Server-side JavaScript

• Uses V8 is an open source JavaScript engine developed by Google. Its

• written in C++ and is used in Google Chrome Browser

• Event-driven with Non-blocking I/O

The Essence of Node• JavaScript on the Server

• More than server-side JavaScript

• Fabulous framework

• Asynchronous programming

• Module-driven development

It’s is JavaScript

• Easy to learn

• Lets you unify your client/server logic

• Productivity

• Already in the Enterprise (Paypal, Netflix, Walmart, IBM)

More than server-side JavaScript

• Web server

• Robot controller (tessel.io)

• Command line application

• Proxy server

• Music machine

• Desktop application tooling: NW.js, Electron

Module-driven development

• Node Package Manager (NPM)

• 250,000++ total packages

• 160,000,000 downloads per day

• Simplicity

• Decoupled and reusable coding

Module-driven development

• npm focused on module-driven development

• ES6 Modules

• Module-driven development for the browser

• bower install moment —save

• npm install moment —save

Desktop Application(torrent)

Desktop Application (editor)

Game Dev Tycoon

Fabulous Framework• Express

• Restify (for building REST API)

• Hapi (configuration-centric framework)

• Sails (fast production-ready)

• Meteor (realtime application)

Asynchronous programming

5s0s 10s

BLOCKING

5s0s 10s

NON-BLOCKING

Create node module

What is Node made of?

Event Loop

V8 JavaScript Engine• V8 is Google's open source JavaScript engine

• V8 implements ECMAScript as specified in ECMA-262

• V8 is written in C++ and is used in Google Chrome, the open source browser from Google

• V8 can run standalone, or can be embedded into any C++ application

Create Event Emitter

Stream and Buffer

Stream

• A sequence of data made available over time

Buffer

• A temporary holding spot for data being moved from one place to another

Hello WorldBuffer Buffer

StreamLorem ipsum dolor sit

amet, consectetur adipisicing elit, sed do

eiusmod tempor incididunt ut labore et

dolore magna aliqua. Ut enim ad minim veniam,

quis nostrud exercitation ullamco laboris nisi ut

aliquip ex ea commodo consequat. Duis aute

irure dolor in

lowercase.txt

LOREM IPSUM DOLOR SIT AMET,

CONSECTETUR ADIPISICING ELIT, SED DO EIUSMOD TEMPOR

INCIDIDUNT UT LABORE ET DOLORE MAGNA ALIQUA. UT ENIM AD MINIM VENIAM, QUIS

NOSTRUD EXERCITATION

ULLAMCO LABORIS NISI

uppercase.txt

stream

StreamProcess

Stream

roL e m

StreamProcess

Stream

Lorembuffer

LOREMbuffer

StreamProcess

Stream

ipsumbuffer

IPSUMbuffer

StreamProcess

Stream

LOREM IPSUM

StreamLOREM IPSUM DOLOR

SIT AMET, CONSECTETUR

ADIPISICING ELIT, SED DO EIUSMOD TEMPOR

INCIDIDUNT UT LABORE ET DOLORE MAGNA ALIQUA. UT ENIM AD MINIM VENIAM, QUIS

NOSTRUD EXERCITATION

ULLAMCO LABORIS NISI

uppercase.txt

What is pipe

• Connecting two streams by writing to one stream

• Let you easily read data from a source and pipe it to a destination

Another Stream

PipeProcess

Readable Streampipe

Process

Hello

Writeable Stream

Write Stream

Build App with Node

Browser

Request

Response

WebServer

Browser

Request

Response

WebServer

HTTP

HTTP

Browser

Request

Response

WebServer

HTTP

HTTP

Javascript

Browser

Request

Response

WebServer

HTTP

HTTP

Javascript

Javascript

What’s JavaScript on Server-side

• Read and write file

• Connect with databases

• Build web server

• Asynchronous task queue/job queue

Create http server

top related