Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Build Your Application On Node.js
Search
mahdi pedramrazi
March 21, 2014
Programming
1
120
Build Your Application On Node.js
mahdi pedramrazi
March 21, 2014
Tweet
Share
More Decks by mahdi pedramrazi
See All by mahdi pedramrazi
CSS Shapes
pedramphp
1
59
Node.js Application Architecture.
pedramphp
0
850
CSS Best Practices
pedramphp
0
120
How to write UI Components
pedramphp
0
88
Other Decks in Programming
See All in Programming
パフォーマンスを求めてDBに機能を寄せる戦略
aoyagikouhei
0
120
WebGLで始める コンピュータグラフィックス入門
heller77
0
360
if constexpr文はテンプレート世界のラムダ式である
faithandbrave
3
710
Try creating your own orderedmap
kazamori
1
270
Fragment Composition of GraphQL
quramy
13
1.6k
MicrosoftのPlatform Engineeringガイドを読んで実際になにかやってみた
ymd65536
1
540
障害対応を起点としたもっといい開発と運用のサイクル作りのためにできること / Hatena Enginner Seminar #29
polamjag
0
430
初心者のためのRubyKaigi入門/RubyKaigi Introduction
a_matsuda
10
1.7k
Let's learn code review
riofujimon
2
620
Exploring the Implementation of “t.Run”, “t.Parallel”, and “t.Cleanup”
akarin
1
150
ts-morphを使ってコードリプレイスとASTへのハードルを下げる!
nyawach
2
160
Ruby on Fails - effective error handling with Rails conventions
talyssonoc
0
210
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
13
2.4k
Building a Scalable Design System with Sketch
lauravandoore
457
32k
GraphQLの誤解/rethinking-graphql
sonatard
56
9.3k
The World Runs on Bad Software
bkeepers
PRO
61
6.7k
The Brand Is Dead. Long Live the Brand.
mthomps
49
29k
The Language of Interfaces
destraynor
151
23k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
0
57
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
66
14k
How to name files
jennybc
65
93k
The Invisible Customer
myddelton
114
12k
No one is an island. Learnings from fostering a developers community.
thoeni
16
2.1k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
8
3.4k
Transcript
Build Your Applica.on On Node.js Mahdi Pedramrazi
Agenda • What is Node.js • Hello world
with Node.js • Node modules • Callback Hell vs Modular Code • Promises
What is Node.js • PlaDorm built on Chrome's JavaScript
run.me (V8 JavaScript engine) • Building fast, scalable Internet applica.ons. • Event-‐driven, non-‐blocking I/O model • Lightweight and efficient • 8000 lines of C/C++, 2000 lines of Javascript • 14 contributors. ( 2009 )
Event Loop • Single threaded • Doesn’t spend
.me wai.ng for things to finish • Sequen.ally execute a number of tasks very rapidly
Hello World • Download Node.js from h`p://nodejs.org •
Install Node.js • Open your Terminal • Type “node” • Type “console.log(‘Hello World’);
Hello World on Your Server Open Terminal and Type:
node helloworld.js
How to Load Modules. // Node Built In modules
var h`p = require('h`p'); //custom modules var customModule = require('path/to/your/module');
Node Modules h`p://nodejs.org/api/ 35+ Build In Modules
require(“h`p”); require(“path”); require(“process”); require(“os”);
How to load dependencies Package.json cheatsheet
How to load Public Modules NPM ( Node Packaged
Modules ) npmjs.org In the root folder run: “npm install” loads all dependencies from package.json //updates package.json Npm install –save moment
Asynchronous Model quiz var ac.on_one = RPS.getEvents(func.on(){ console.log(arguments);
}); var ac.on_two = RPS.getEvent(“test”, func.on(){ console.log(arguments); }); var Ac.on_three = require('events').EventEmi`er;
Callback Hell
Name Your Func.on
Reduce Nes.ng
None
Modularize!
Issac Schlueter (NPM Developer ) Write small modules that
each do one thing, and assemble them into other modules that do a bigger thing. You can't get into callback hell if you don't go there.
CommonJS • Modern JavaScript Design pa`ern. • CommonJS
module is a reusable piece of JavaScript which exports specific objects made available to any dependent code. • Unlike AMD, there are typically no func.on wrappers around such modules (so we won't see define here for example).
CommonJS to the rescue Formuploader.js
Callback hell vs Modular code
Paradigm of Doom the situa.on where code marches to
the right faster than it marches forward.
Callback Limita.ons Dependency Management can become messy
Error Handling is a Nightmare
Promises Represents a proxy for a value which
is not known at it’s crea.on .me.
Promise Fulfilled The ac.on rela.ng to the promise
succeeded
Promise Rejected The ac.on rela.ng to the promise
Failed
Promise Pending Hasn’t fulfilled or rejected yet
Promise se`led Has Fulfilled or rejected
Promise Libraries • Q • When
• RQ ( Doug Crockford ) • Deffered • Async
Q – Promise
Se`led • Use allSe`led If you want to wait
for all of the promises to either be fulfilled or rejected.
Q -‐ Error Handling
Q -‐ Progress no.fica.on
How to Create a Promise Func.on
None
Q – Promise Example
Useful Links Express -‐ Web development framework for
Node.js Tips, Libraries, Tutorials Q.Js Node Inspector