SlideShare une entreprise Scribd logo
1  sur  36
Télécharger pour lire hors ligne
NodeJS
Guilherme Quental
 github.com/gquental
    fb.com/gquental
Quem sou eu?
●   Guilherme Quental
●   Formado em Desenvolvimento de Sistemas
●   Backend Developer na Conrad Caine
●   Membro da Hack Thursday
http://hackthursday.github.com
https://github.com/HackThursday
Alguém conhece?!
Conhecido como
JavaScript no lado do
      servidor
X
Node é muito mais que
        isso
Ryan Dahl
O que define Node?
I/O não bloqueante
JavaScript API


         libuv
V8
      libeio
               libev   IOCP
Tipos
●   select
●   poll
●   epoll
●   kqueue
●   IOCP
Agora a parte buena!
Node é totalmente
         modular
Na realidade ele mesmo é um conjunto de
                 módulos
Existem diversos módulos
●   File System
●   TCP
●   UDP
●   HTTP
●   Buffer
●   Events
●   Stream
●   Process
Pera ai!!!
Antes disso quero ver aquele esquema de
          I/O não bloqueante!!!
Entendido?
 Partiu então!
Módulos em Node


  C e JavaScript
C?! WTF?!
Primeiro vamos entender
   sistema de módulos
Mas e os módulos em C?
node-gyp
Ok... e módulos de
     terceiros?
E se eu quiser criar meu
        módulo?
E agora uma parte melhor
         ainda!
         Exemplos!
Events
HTTP
Socket
Buffer
Peçam exemplos!
   E criemos Gists!
Perguntas?!
Contato
guilherme@quent.al
github.com/gquental
   fb.com/gquental

Contenu connexe

Tendances

Programando Software Livre em C
Programando Software Livre em CProgramando Software Livre em C
Programando Software Livre em CDiego Santos
 
Construindo uma ferramenta CLI multiplataforma com Node.js
Construindo uma ferramenta CLI multiplataforma com Node.jsConstruindo uma ferramenta CLI multiplataforma com Node.js
Construindo uma ferramenta CLI multiplataforma com Node.jsGiovanni Bassi
 
Docker: introdução e primeiros passos - Baixada NERD - Junho-2018
Docker: introdução e primeiros passos - Baixada NERD - Junho-2018Docker: introdução e primeiros passos - Baixada NERD - Junho-2018
Docker: introdução e primeiros passos - Baixada NERD - Junho-2018Renato Groff
 
Desenvolvendo Aplicações Android com Qt
Desenvolvendo Aplicações Android com QtDesenvolvendo Aplicações Android com Qt
Desenvolvendo Aplicações Android com QtSandro Andrade
 
Palestra: Introdução à TypeScript & Features Ts 2.x
Palestra: Introdução à TypeScript & Features Ts 2.x Palestra: Introdução à TypeScript & Features Ts 2.x
Palestra: Introdução à TypeScript & Features Ts 2.x Glaucia Lemos
 
Testes com javascript
Testes com javascriptTestes com javascript
Testes com javascriptLaís Lima
 
5 Tecnologias que todo Desenvolvedor Web deveria conhecer - Developers-BR - O...
5 Tecnologias que todo Desenvolvedor Web deveria conhecer - Developers-BR - O...5 Tecnologias que todo Desenvolvedor Web deveria conhecer - Developers-BR - O...
5 Tecnologias que todo Desenvolvedor Web deveria conhecer - Developers-BR - O...Renato Groff
 
Python Nordeste 2016 - Aplicações multiplataforma - Kivy
Python Nordeste 2016 - Aplicações multiplataforma - KivyPython Nordeste 2016 - Aplicações multiplataforma - Kivy
Python Nordeste 2016 - Aplicações multiplataforma - KivyJulio Cesar Eiras Melanda
 
Migração de Banco de Dados - Oracle para MongoDB - TDC2014
Migração de Banco de Dados - Oracle para MongoDB - TDC2014Migração de Banco de Dados - Oracle para MongoDB - TDC2014
Migração de Banco de Dados - Oracle para MongoDB - TDC2014Jonathan Prates
 
.NET com contêineres Windows e Linux
.NET com contêineres Windows e Linux.NET com contêineres Windows e Linux
.NET com contêineres Windows e LinuxGiovanni Bassi
 
Práticas de Agilidade e QA na Comunidade KDE
Práticas de Agilidade e QA na Comunidade KDEPráticas de Agilidade e QA na Comunidade KDE
Práticas de Agilidade e QA na Comunidade KDESandro Andrade
 
Git e contibuição com projetos open source usando GitHub
Git e contibuição com projetos open source usando GitHubGit e contibuição com projetos open source usando GitHub
Git e contibuição com projetos open source usando GitHubBruno Orlandi
 
Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panosLaís Lima
 
Globo.com - Porque amamos open-source?
Globo.com - Porque amamos open-source?Globo.com - Porque amamos open-source?
Globo.com - Porque amamos open-source?Igor Macaubas
 
Desenvolvendo Widgets QML para o KDE Plasma
Desenvolvendo Widgets QML para o KDE PlasmaDesenvolvendo Widgets QML para o KDE Plasma
Desenvolvendo Widgets QML para o KDE PlasmaSandro Andrade
 

Tendances (20)

Programando Software Livre em C
Programando Software Livre em CProgramando Software Livre em C
Programando Software Livre em C
 
Construindo uma ferramenta CLI multiplataforma com Node.js
Construindo uma ferramenta CLI multiplataforma com Node.jsConstruindo uma ferramenta CLI multiplataforma com Node.js
Construindo uma ferramenta CLI multiplataforma com Node.js
 
Docker: introdução e primeiros passos - Baixada NERD - Junho-2018
Docker: introdução e primeiros passos - Baixada NERD - Junho-2018Docker: introdução e primeiros passos - Baixada NERD - Junho-2018
Docker: introdução e primeiros passos - Baixada NERD - Junho-2018
 
Desenvolvendo Aplicações Android com Qt
Desenvolvendo Aplicações Android com QtDesenvolvendo Aplicações Android com Qt
Desenvolvendo Aplicações Android com Qt
 
Programando em Go
Programando em GoProgramando em Go
Programando em Go
 
2013 - 4 Google Open Source Jam
2013 - 4 Google Open Source Jam2013 - 4 Google Open Source Jam
2013 - 4 Google Open Source Jam
 
Palestra: Introdução à TypeScript & Features Ts 2.x
Palestra: Introdução à TypeScript & Features Ts 2.x Palestra: Introdução à TypeScript & Features Ts 2.x
Palestra: Introdução à TypeScript & Features Ts 2.x
 
Testes com javascript
Testes com javascriptTestes com javascript
Testes com javascript
 
5 Tecnologias que todo Desenvolvedor Web deveria conhecer - Developers-BR - O...
5 Tecnologias que todo Desenvolvedor Web deveria conhecer - Developers-BR - O...5 Tecnologias que todo Desenvolvedor Web deveria conhecer - Developers-BR - O...
5 Tecnologias que todo Desenvolvedor Web deveria conhecer - Developers-BR - O...
 
Python Nordeste 2016 - Aplicações multiplataforma - Kivy
Python Nordeste 2016 - Aplicações multiplataforma - KivyPython Nordeste 2016 - Aplicações multiplataforma - Kivy
Python Nordeste 2016 - Aplicações multiplataforma - Kivy
 
Migração de Banco de Dados - Oracle para MongoDB - TDC2014
Migração de Banco de Dados - Oracle para MongoDB - TDC2014Migração de Banco de Dados - Oracle para MongoDB - TDC2014
Migração de Banco de Dados - Oracle para MongoDB - TDC2014
 
.NET com contêineres Windows e Linux
.NET com contêineres Windows e Linux.NET com contêineres Windows e Linux
.NET com contêineres Windows e Linux
 
Práticas de Agilidade e QA na Comunidade KDE
Práticas de Agilidade e QA na Comunidade KDEPráticas de Agilidade e QA na Comunidade KDE
Práticas de Agilidade e QA na Comunidade KDE
 
Git e contibuição com projetos open source usando GitHub
Git e contibuição com projetos open source usando GitHubGit e contibuição com projetos open source usando GitHub
Git e contibuição com projetos open source usando GitHub
 
Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panos
 
Globo.com - Porque amamos open-source?
Globo.com - Porque amamos open-source?Globo.com - Porque amamos open-source?
Globo.com - Porque amamos open-source?
 
Git para Designers
Git para DesignersGit para Designers
Git para Designers
 
Desenvolvendo Widgets QML para o KDE Plasma
Desenvolvendo Widgets QML para o KDE PlasmaDesenvolvendo Widgets QML para o KDE Plasma
Desenvolvendo Widgets QML para o KDE Plasma
 
O KDE no mundo
O KDE no mundoO KDE no mundo
O KDE no mundo
 
[Testes] frameworks de testes end to-end baseados em node js
[Testes] frameworks de testes end to-end baseados em node js [Testes] frameworks de testes end to-end baseados em node js
[Testes] frameworks de testes end to-end baseados em node js
 

En vedette

DevInRio 2010 - NodeJS
DevInRio 2010 - NodeJSDevInRio 2010 - NodeJS
DevInRio 2010 - NodeJSEmerson Macedo
 
IoTizando com JavaScript
IoTizando com JavaScriptIoTizando com JavaScript
IoTizando com JavaScriptHeider Lopes
 
Beyond Ruby with NodeJS - RubyConf Brasil 2010
Beyond Ruby with NodeJS - RubyConf Brasil 2010Beyond Ruby with NodeJS - RubyConf Brasil 2010
Beyond Ruby with NodeJS - RubyConf Brasil 2010Emerson Macedo
 
Angular Nodejs e com mongolab
Angular Nodejs e com mongolabAngular Nodejs e com mongolab
Angular Nodejs e com mongolabWende Mendes
 
Método criado por paraense pode servir de base tecnológica para criar soluçõe...
Método criado por paraense pode servir de base tecnológica para criar soluçõe...Método criado por paraense pode servir de base tecnológica para criar soluçõe...
Método criado por paraense pode servir de base tecnológica para criar soluçõe...João Gabriel Lima
 
GDG NodeJS Sem Segredos
GDG NodeJS Sem SegredosGDG NodeJS Sem Segredos
GDG NodeJS Sem SegredosCaio Cutrim
 
EasyTaxi e MongoDB - Showcase
EasyTaxi e MongoDB - ShowcaseEasyTaxi e MongoDB - Showcase
EasyTaxi e MongoDB - ShowcaseYuri Teixeira
 
Equipe Origami City
Equipe Origami CityEquipe Origami City
Equipe Origami CityCEPMBB
 
Node js - O poder do JavaScript do lado do servidor
Node js  - O poder do JavaScript do lado do servidorNode js  - O poder do JavaScript do lado do servidor
Node js - O poder do JavaScript do lado do servidorRomulo Fagundes
 
MEAN Full Stack JavaScript - TaSafoConf 2015
MEAN Full Stack JavaScript - TaSafoConf 2015MEAN Full Stack JavaScript - TaSafoConf 2015
MEAN Full Stack JavaScript - TaSafoConf 2015Kaio Valente
 
Conhecendo o Nodejs
Conhecendo o NodejsConhecendo o Nodejs
Conhecendo o NodejsCaio Cutrim
 
NodeJS - E/S não-bloqueante - Dirigido a Eventos
NodeJS - E/S não-bloqueante - Dirigido a EventosNodeJS - E/S não-bloqueante - Dirigido a Eventos
NodeJS - E/S não-bloqueante - Dirigido a EventosÁtila Camurça
 
Guia utilização e desenvolvimento de aplicação no PaaS c9.io
Guia utilização e desenvolvimento de aplicação no PaaS c9.ioGuia utilização e desenvolvimento de aplicação no PaaS c9.io
Guia utilização e desenvolvimento de aplicação no PaaS c9.iomarcochella
 
Adwords Express: como anunciar?
Adwords Express: como anunciar?Adwords Express: como anunciar?
Adwords Express: como anunciar?Mateada
 
Mean Stack - Aplicações Web Modernas com MEAN
Mean Stack - Aplicações Web Modernas com MEANMean Stack - Aplicações Web Modernas com MEAN
Mean Stack - Aplicações Web Modernas com MEANJoão Gabriel Lima
 

En vedette (20)

Node js
Node jsNode js
Node js
 
DevInRio 2010 - NodeJS
DevInRio 2010 - NodeJSDevInRio 2010 - NodeJS
DevInRio 2010 - NodeJS
 
IoTizando com JavaScript
IoTizando com JavaScriptIoTizando com JavaScript
IoTizando com JavaScript
 
Beyond Ruby with NodeJS - RubyConf Brasil 2010
Beyond Ruby with NodeJS - RubyConf Brasil 2010Beyond Ruby with NodeJS - RubyConf Brasil 2010
Beyond Ruby with NodeJS - RubyConf Brasil 2010
 
Express 4
Express 4Express 4
Express 4
 
Angular Nodejs e com mongolab
Angular Nodejs e com mongolabAngular Nodejs e com mongolab
Angular Nodejs e com mongolab
 
Jquery 2
Jquery 2Jquery 2
Jquery 2
 
Método criado por paraense pode servir de base tecnológica para criar soluçõe...
Método criado por paraense pode servir de base tecnológica para criar soluçõe...Método criado por paraense pode servir de base tecnológica para criar soluçõe...
Método criado por paraense pode servir de base tecnológica para criar soluçõe...
 
No Llores
No LloresNo Llores
No Llores
 
GDG NodeJS Sem Segredos
GDG NodeJS Sem SegredosGDG NodeJS Sem Segredos
GDG NodeJS Sem Segredos
 
EasyTaxi e MongoDB - Showcase
EasyTaxi e MongoDB - ShowcaseEasyTaxi e MongoDB - Showcase
EasyTaxi e MongoDB - Showcase
 
Equipe Origami City
Equipe Origami CityEquipe Origami City
Equipe Origami City
 
Node js - O poder do JavaScript do lado do servidor
Node js  - O poder do JavaScript do lado do servidorNode js  - O poder do JavaScript do lado do servidor
Node js - O poder do JavaScript do lado do servidor
 
MEAN Full Stack JavaScript - TaSafoConf 2015
MEAN Full Stack JavaScript - TaSafoConf 2015MEAN Full Stack JavaScript - TaSafoConf 2015
MEAN Full Stack JavaScript - TaSafoConf 2015
 
Conhecendo o Nodejs
Conhecendo o NodejsConhecendo o Nodejs
Conhecendo o Nodejs
 
NodeJS - E/S não-bloqueante - Dirigido a Eventos
NodeJS - E/S não-bloqueante - Dirigido a EventosNodeJS - E/S não-bloqueante - Dirigido a Eventos
NodeJS - E/S não-bloqueante - Dirigido a Eventos
 
Guia utilização e desenvolvimento de aplicação no PaaS c9.io
Guia utilização e desenvolvimento de aplicação no PaaS c9.ioGuia utilização e desenvolvimento de aplicação no PaaS c9.io
Guia utilização e desenvolvimento de aplicação no PaaS c9.io
 
Adwords Express: como anunciar?
Adwords Express: como anunciar?Adwords Express: como anunciar?
Adwords Express: como anunciar?
 
Mean Stack - Aplicações Web Modernas com MEAN
Mean Stack - Aplicações Web Modernas com MEANMean Stack - Aplicações Web Modernas com MEAN
Mean Stack - Aplicações Web Modernas com MEAN
 
Javascript nos dias de hoje
Javascript nos dias de hojeJavascript nos dias de hoje
Javascript nos dias de hoje
 

Similaire à NodeJS: Conhecendo o JavaScript no lado do servidor

PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011Evaldo Junior
 
Node.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançadoNode.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançadoEduardo Bohrer
 
Deixando de ser moleque com PHP
Deixando de ser moleque com PHPDeixando de ser moleque com PHP
Deixando de ser moleque com PHPVinícius Krolow
 
NodeJS Under the Hood - Concurrency and Multithreading
NodeJS Under the Hood - Concurrency and MultithreadingNodeJS Under the Hood - Concurrency and Multithreading
NodeJS Under the Hood - Concurrency and MultithreadingRhuan Karlus Silva
 
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containers
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containersTDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containers
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containerstdc-globalcode
 
Novidades PHP 7.4 e 8.0!
Novidades PHP 7.4 e 8.0!Novidades PHP 7.4 e 8.0!
Novidades PHP 7.4 e 8.0!Marcos Marcolin
 
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedorGit e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedorFelipe Pedroso
 
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...tdc-globalcode
 
Qualidade em projetos PHP - PHPSC Conf 2011
Qualidade em projetos PHP - PHPSC Conf 2011Qualidade em projetos PHP - PHPSC Conf 2011
Qualidade em projetos PHP - PHPSC Conf 2011Luís Cobucci
 
Qualidade em projetos PHP - SoLiSC 2011
Qualidade em projetos PHP - SoLiSC 2011Qualidade em projetos PHP - SoLiSC 2011
Qualidade em projetos PHP - SoLiSC 2011Luís Cobucci
 
graoJS - A full stack MVC NodeJS framework
graoJS - A full stack MVC NodeJS frameworkgraoJS - A full stack MVC NodeJS framework
graoJS - A full stack MVC NodeJS frameworkMarcelo Fleury
 
Nodejs justdigital
Nodejs justdigitalNodejs justdigital
Nodejs justdigitalJust Digital
 
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...tdc-globalcode
 
Precisamos falar sobre Testes de infraestrutura
Precisamos falar sobre Testes de infraestruturaPrecisamos falar sobre Testes de infraestrutura
Precisamos falar sobre Testes de infraestruturaRafael Gomes
 
Be Happy With Semantic Versioning And Git Flow - PHP Conference Brasil 2012
Be Happy With Semantic Versioning And Git Flow - PHP Conference Brasil 2012Be Happy With Semantic Versioning And Git Flow - PHP Conference Brasil 2012
Be Happy With Semantic Versioning And Git Flow - PHP Conference Brasil 2012Rogerio Prado de Jesus
 
Escalando uma plataforma poliglota - QConSP 17
Escalando uma plataforma poliglota - QConSP 17Escalando uma plataforma poliglota - QConSP 17
Escalando uma plataforma poliglota - QConSP 17Leandro Moreira
 
Xdebug seus problemas acabaram - tdc floripa 2017
Xdebug   seus problemas acabaram - tdc floripa 2017Xdebug   seus problemas acabaram - tdc floripa 2017
Xdebug seus problemas acabaram - tdc floripa 2017Vitor Mattos
 

Similaire à NodeJS: Conhecendo o JavaScript no lado do servidor (20)

PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011
 
Node.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançadoNode.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançado
 
Vivendo de hacking
Vivendo de hackingVivendo de hacking
Vivendo de hacking
 
Deixando de ser moleque com PHP
Deixando de ser moleque com PHPDeixando de ser moleque com PHP
Deixando de ser moleque com PHP
 
NodeJS Under the Hood - Concurrency and Multithreading
NodeJS Under the Hood - Concurrency and MultithreadingNodeJS Under the Hood - Concurrency and Multithreading
NodeJS Under the Hood - Concurrency and Multithreading
 
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containers
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containersTDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containers
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containers
 
Novidades PHP 7.4 e 8.0!
Novidades PHP 7.4 e 8.0!Novidades PHP 7.4 e 8.0!
Novidades PHP 7.4 e 8.0!
 
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedorGit e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
 
Vim Rocks!
Vim Rocks!Vim Rocks!
Vim Rocks!
 
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
 
Qualidade em projetos PHP - PHPSC Conf 2011
Qualidade em projetos PHP - PHPSC Conf 2011Qualidade em projetos PHP - PHPSC Conf 2011
Qualidade em projetos PHP - PHPSC Conf 2011
 
Qualidade em projetos PHP - SoLiSC 2011
Qualidade em projetos PHP - SoLiSC 2011Qualidade em projetos PHP - SoLiSC 2011
Qualidade em projetos PHP - SoLiSC 2011
 
graoJS - A full stack MVC NodeJS framework
graoJS - A full stack MVC NodeJS frameworkgraoJS - A full stack MVC NodeJS framework
graoJS - A full stack MVC NodeJS framework
 
Nodejs justdigital
Nodejs justdigitalNodejs justdigital
Nodejs justdigital
 
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
 
Precisamos falar sobre Testes de infraestrutura
Precisamos falar sobre Testes de infraestruturaPrecisamos falar sobre Testes de infraestrutura
Precisamos falar sobre Testes de infraestrutura
 
Be Happy With Semantic Versioning And Git Flow - PHP Conference Brasil 2012
Be Happy With Semantic Versioning And Git Flow - PHP Conference Brasil 2012Be Happy With Semantic Versioning And Git Flow - PHP Conference Brasil 2012
Be Happy With Semantic Versioning And Git Flow - PHP Conference Brasil 2012
 
Node.js
Node.jsNode.js
Node.js
 
Escalando uma plataforma poliglota - QConSP 17
Escalando uma plataforma poliglota - QConSP 17Escalando uma plataforma poliglota - QConSP 17
Escalando uma plataforma poliglota - QConSP 17
 
Xdebug seus problemas acabaram - tdc floripa 2017
Xdebug   seus problemas acabaram - tdc floripa 2017Xdebug   seus problemas acabaram - tdc floripa 2017
Xdebug seus problemas acabaram - tdc floripa 2017
 

NodeJS: Conhecendo o JavaScript no lado do servidor