SlideShare a Scribd company logo
node.js
      Jakub Nesetril
jakub.nesetril@gmail.com
Who Are You?
Who Are You?

• JS
Who Are You?

• JS
• Ruby
Who Are You?

• JS
• Ruby
• web
Who Are You?

• JS
• Ruby
• web
• what real language do you speak?
TOC
TOC

• blocking vs. non-blocking intro
TOC

• blocking vs. non-blocking intro
• short introduction to node.js
TOC

• blocking vs. non-blocking intro
• short introduction to node.js
• examples
TOC

• blocking vs. non-blocking intro
• short introduction to node.js
• examples
• Q&A
Tags
Tags
• #javascript , #v8 , #ssjs
Tags
• #javascript , #v8 , #ssjs
• #event-oriented
Tags
• #javascript , #v8 , #ssjs
• #event-oriented
• #high-performance
Tags
• #javascript , #v8 , #ssjs
• #event-oriented
• #high-performance
• #asynchronous , #non-blocking
Tags
• #javascript , #v8 , #ssjs
• #event-oriented
• #high-performance
• #asynchronous , #non-blocking
• #low-level
Tags
• #javascript , #v8 , #ssjs
• #event-oriented
• #high-performance
• #asynchronous , #non-blocking
• #low-level
• #fun!
What’s missing?
Tags
• #javascript , #v8 , #ssjs
• #event-oriented
• #high-performance
• #asynchronous , #non-blocking
• #low-level
• #stable , #mature (not!)
(non-) Blocking IO
(non-) Blocking IO


• var rows = db.query(“SELECT * FROM…)
(non-) Blocking IO


• var rows = db.query(“SELECT * FROM…)
• rows.forEach…
(non-) Blocking IO


• db.query(“SELECT * FROM…”,
    function(rows) { rows.forEach… });
Why isn’t everybody
     doing it?
Why isn’t everybody
      doing it?
• non-blocking can be hard
Why isn’t everybody
      doing it?
• non-blocking can be hard
• JS is an ideal language / community for this
Why isn’t everybody
      doing it?
• non-blocking can be hard
• JS is an ideal language / community for this
• Ajax / DOM has taught events to millions
  of people
Why isn’t everybody
      doing it?
• non-blocking can be hard
• JS is an ideal language / community for this
• Ajax / DOM has taught events to millions
  of people
• node.js = network servers in JS
Example 1
Design Principles
Design Principles
• non-blocking - every IO must take callback
Design Principles
• non-blocking - every IO must take callback
• API should be familiar to client-side JS
  programmers ans old school UNIX hackers
Design Principles
• non-blocking - every IO must take callback
• API should be familiar to client-side JS
  programmers ans old school UNIX hackers
• built-in support for HTTP, DNS, TLS
Design Principles
• non-blocking - every IO must take callback
• API should be familiar to client-side JS
  programmers ans old school UNIX hackers
• built-in support for HTTP, DNS, TLS
• support advanced features (chunked
  encoding, pipelining, hanging requests for
  websockets etc.)
Example 2
Ecosystem
Ecosystem

• node modules (CommonJS)
Ecosystem

• node modules (CommonJS)
• npm
Ecosystem

• node modules (CommonJS)
• npm
• connect & express
Ecosystem

• node modules (CommonJS)
• npm
• connect & express
• node-inspector
Ecosystem

• node modules (CommonJS)
• npm
• connect & express
• node-inspector
• bounce
Advanced Topics
Advanced Topics

• WebSockets
Advanced Topics

• WebSockets
• Server-side DOM
Advanced Topics

• WebSockets
• Server-side DOM
• Performance
Advanced Topics

• WebSockets
• Server-side DOM
• Performance
• Hosting
NodeKnockout
Q&A

More Related Content

What's hot (11)

PPT
Let's unRiddle jsFiddle
rhoward_blk
 
PPTX
Going offline with JS (DDD Sydney)
brendankowitz
 
PPT
The Realtime Web: Stateful and Programmable
Christopher Gomez
 
PDF
かぼすのLTの資料
夕人 江熊
 
PPTX
Fun Learning Web Scraping - QueensJS - 9/2/2015
Danny Garcia
 
KEY
Wwcode2
Sarah Mei
 
PDF
下吧开发总结
Night Sailer
 
KEY
Be German About Your Frontend
Arush Sehgal
 
PPTX
Java script fundamental - Introduction to JavaScript Programming Language
Kimsea Sok
 
PDF
2016-05-12 DCRUG React.rb
awwaiid
 
Let's unRiddle jsFiddle
rhoward_blk
 
Going offline with JS (DDD Sydney)
brendankowitz
 
The Realtime Web: Stateful and Programmable
Christopher Gomez
 
かぼすのLTの資料
夕人 江熊
 
Fun Learning Web Scraping - QueensJS - 9/2/2015
Danny Garcia
 
Wwcode2
Sarah Mei
 
下吧开发总结
Night Sailer
 
Be German About Your Frontend
Arush Sehgal
 
Java script fundamental - Introduction to JavaScript Programming Language
Kimsea Sok
 
2016-05-12 DCRUG React.rb
awwaiid
 

Viewers also liked (20)

PDF
Create a RESTful API with NodeJS, Express and MongoDB
Hengki Sihombing
 
PDF
High Performance JavaScript
greenwop
 
PPT
Nodejs - Building a RESTful API
Sang Cù
 
PDF
Post-REST Manifesto
Jakub Nesetril
 
PDF
Consuming API description languages - Refract & Minim
Jakub Nesetril
 
PDF
NodeJS, CoffeeScript & Real-time Web
Jakub Nesetril
 
PDF
Harmony in API Design
Jakub Nesetril
 
PDF
Startup Accelerators
Jakub Nesetril
 
PDF
Avoiding API Waterfalls
Jakub Nesetril
 
PDF
Budoucnost Web Aplikaci
Jakub Nesetril
 
PDF
Introduction to GoodData BI PaaS
Jakub Nesetril
 
PDF
Art of Building APIs
Jakub Nesetril
 
PDF
Introduction to REST API with Node.js
Yoann Gotthilf
 
KEY
REST API tools
Jakub Nesetril
 
ZIP
Advanced Regular Expressions Redux
Jakub Nesetril
 
PDF
GoodData: One Stop Shop for Analytics
Jakub Nesetril
 
KEY
Let's Have a Cup of CoffeeScript
Nicolás Sanguinetti
 
PDF
Node at Apiary.io
Jakub Nesetril
 
PDF
API Design Workflows
Jakub Nesetril
 
PPTX
Apiary
Suresh B
 
Create a RESTful API with NodeJS, Express and MongoDB
Hengki Sihombing
 
High Performance JavaScript
greenwop
 
Nodejs - Building a RESTful API
Sang Cù
 
Post-REST Manifesto
Jakub Nesetril
 
Consuming API description languages - Refract & Minim
Jakub Nesetril
 
NodeJS, CoffeeScript & Real-time Web
Jakub Nesetril
 
Harmony in API Design
Jakub Nesetril
 
Startup Accelerators
Jakub Nesetril
 
Avoiding API Waterfalls
Jakub Nesetril
 
Budoucnost Web Aplikaci
Jakub Nesetril
 
Introduction to GoodData BI PaaS
Jakub Nesetril
 
Art of Building APIs
Jakub Nesetril
 
Introduction to REST API with Node.js
Yoann Gotthilf
 
REST API tools
Jakub Nesetril
 
Advanced Regular Expressions Redux
Jakub Nesetril
 
GoodData: One Stop Shop for Analytics
Jakub Nesetril
 
Let's Have a Cup of CoffeeScript
Nicolás Sanguinetti
 
Node at Apiary.io
Jakub Nesetril
 
API Design Workflows
Jakub Nesetril
 
Apiary
Suresh B
 
Ad

Similar to Introduction to node.js (20)

PPTX
Proposal
Constantine Priemski
 
PPTX
Introduction to Node.js
Vikash Singh
 
PDF
Tech io nodejs_20130531_v0.6
Ganesh Kondal
 
ODP
Introduce about Nodejs - duyetdev.com
Van-Duyet Le
 
PPT
18_Node.js.ppt
KhalilSalhi7
 
PPTX
Node
Ankit Chawla
 
PPT
18_Node.js.ppt
MaulikShah516542
 
PDF
Node.js introduction
Parth Joshi
 
PPT
Node.js
Neethu Dasan
 
PPTX
Node js
Fatih Şimşek
 
PPTX
An overview of node.js
valuebound
 
PPTX
Nodejs
Vinod Kumar Marupu
 
PDF
Node.js Presentation
Exist
 
PPT
Introduction to node.js aka NodeJS
JITENDRA KUMAR PATEL
 
PPTX
Beginners Node.js
Khaled Mosharraf
 
PPTX
What is Node.js
mohamed hadrich
 
PPTX
Event-driven IO server-side JavaScript environment based on V8 Engine
Ricardo Silva
 
PPTX
Intro to node and non blocking io
Amy Hua
 
PDF
Node.js scaling in highload
Timur Shemsedinov
 
Introduction to Node.js
Vikash Singh
 
Tech io nodejs_20130531_v0.6
Ganesh Kondal
 
Introduce about Nodejs - duyetdev.com
Van-Duyet Le
 
18_Node.js.ppt
KhalilSalhi7
 
18_Node.js.ppt
MaulikShah516542
 
Node.js introduction
Parth Joshi
 
Node.js
Neethu Dasan
 
An overview of node.js
valuebound
 
Node.js Presentation
Exist
 
Introduction to node.js aka NodeJS
JITENDRA KUMAR PATEL
 
Beginners Node.js
Khaled Mosharraf
 
What is Node.js
mohamed hadrich
 
Event-driven IO server-side JavaScript environment based on V8 Engine
Ricardo Silva
 
Intro to node and non blocking io
Amy Hua
 
Node.js scaling in highload
Timur Shemsedinov
 
Ad

Recently uploaded (20)

PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
PPTX
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
PDF
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
PPTX
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PDF
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
PDF
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PDF
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
PDF
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
PDF
July Patch Tuesday
Ivanti
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PDF
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
July Patch Tuesday
Ivanti
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 

Introduction to node.js

Editor's Notes

  • #26: Example 0 - async switch lines and test
  • #31: Example 1 - server Example 2 - dns show node API docs
  • #32: modules example, node modules, npm
  • #33: modules example, node modules, npm
  • #34: modules example, node modules, npm
  • #35: modules example, node modules, npm
  • #36: modules example, node modules, npm
  • #41: Scrabbly (http://scrabb.ly/), Swarmnation (http://swarmation.com/), Serrano (http://starcraft2destroyedmymarrage.no.de/)