Você está na página 1de 3

28/01/14

PM2 - mantendo o node.js no ar | iMasters

Portal Fórum 7Masters Ferramentas Cursos online Agenda Revista iMasters InterCon Faça Login / Cadastre-se + de
Portal
Fórum
7Masters
Ferramentas
Cursos online
Agenda
Revista iMasters
InterCon
Faça Login / Cadastre-se
+ de 11.000 artigos técnicos publicados em 12 anos
Faça sua busca
DESIGN &
UX
FRONT-END
DEV
BD
MOBILE
MARKETING
GESTÃO
APIS
SEARCH
INFRA
TECH
E-COMMERCE
ANALYTICS
Você está aqui:
Início
>
Front-End
>
JavaScript
>
PM2 – mantendo o node.js no ar
TTwweeeettaarr 2
0
LLiikkee
SShhaarree
0

PM2 – mantendo o node.js no ar

09 de janeiro de 2014 por João Martins

O módulo PM2 é um gerenciador de processos para aplicações Node.js em modo cli (command line) bem como, um distribuidor automático de “cores”. Neste artigo iremos simular uma queda do processo node.js e sua reinicialização “auto-magicamente”. Para isto iremos usar o exemplo básico de um http server fornecido no próprio site node.js

1

# touch app.js

1

var http = require('http');

 

2

http.createServer(function (req, res) {

3

res.writeHead(200, {'Content-Type': 'text/plain'});

 

4

res.end('Hello World\n');

 

5

}).listen(1337, '127.0.0.1');

6

console.log('Server running at http://127.0.0.1:1337/');

 

Instalando o PM2 em modo global:

 

1

# npm install pm2 -g

Iniciando o PM2 em modo fork:

 

Estamos usando o modo Fork (-x) o qual inicia o node em um processo a parte:

 

1

`# pm2 start app.js -x

 

Verificando se o processo foi iniciado com sucesso:

1

pm2 start app.js -x

2

PM2 Process successfully started

3

┌──────────┬────┬──────┬──────┬────────┬──────┬───────────┬─────

4

│ App Name │ id │ mode │ PID │ status │ port │ Restarted │ Upti

5

├──────────┼────┼──────┼──────┼────────┼──────┼───────────┼─────

6

│ app

│ 0 │ fork │ 4715 │ online │

0

│ 0s

7

└──────────┴────┴──────┴──────┴────────┴──────┴───────────┴─────

28/01/14 PM2 - mantendo o node.js no ar | iMasters Portal Fórum 7Masters Ferramentas Cursos onlineJAVASCRIPT PM2 – mantendo o node.js no ar 09 de janeiro de 2014 por João Martins O módulo PM2 é um gerenciador de processos para aplicações Node.js em modo cli (command line) bem como, um distribuidor automático de “cores”. Neste artigo iremos simular uma queda do processo node.js e sua reinicialização “auto-magicamente”. Para isto iremos usar o exemplo básico de um http server fornecido no próprio site node.js 1 # touch app.js 1 var http = require( 'http' ); 2 http.createServer( function (req, res) { 3 res.writeHead(200, { 'Content-Type' : 'text/plain' }); 4 res.end( 'Hello World\n' ); 5 }).listen(1337, '127.0.0.1' ); 6 console.log( 'Server running at http://127.0.0.1:1337/ ' ); Instalando o PM2 em modo global: 1 # npm install pm2 -g Iniciando o PM2 em modo fork: Estamos usando o modo Fork (-x) o qual inicia o node em um processo a parte: 1 ` # pm2 start app.js -x Verificando se o processo foi iniciado com sucesso: 1 pm2 start app.js -x 2 PM2 Process successfully started 3 ┌──────────┬────┬──────┬──────┬────────┬──────┬───────────┬───── 4 │ App Name │ id │ mode │ PID │ status │ port │ Restarted │ Upti 5 ├──────────┼────┼──────┼──────┼────────┼──────┼───────────┼───── 6 │ app │ 0 │ fork │ 4715 │ online │ │ 0 │ 0s 7 └──────────┴────┴──────┴──────┴────────┴──────┴───────────┴───── Agora vamos criar uma rota e forçar um erro: 1 var http = require( 'http' ); 2 http.createServer( function (req, res) { 3 res.writeHead(200, { 'Content-Type' : 'text/plain' }); ÚLTIMAS NOTÍCIAS 28/01 ÀS 05H40 Google Glass ganha modelos para lentes de grau 28/01 ÀS 04H35 Apesar do aumento da velocidade da Internet, Brasil cai para 84º em ranking mundial 28/01 ÀS 04H00 LinkedIn libera pesquisa que revela o perfil dos usuários no Brasil 28/01 ÀS 03H40 NSA intercepta dados de usuários de apps móveis 28/01 ÀS 02H30 Mercado de smartphones ultrapassa marca de 1 bilhão de aparelhos vendidos em 2013 TODAS AS NOTÍCIAS » imasters.com.br/front-end/javascript/pm2-mantendo-o-node-js-no-ar/ 1/3 " id="pdf-obj-0-166" src="pdf-obj-0-166.jpg">

Agora vamos criar uma rota e forçar um erro:

  • 1 var http = require('http');

  • 2 http.createServer(function (req, res) {

  • 3 res.writeHead(200, {'Content-Type': 'text/plain'});

28/01/14 PM2 - mantendo o node.js no ar | iMasters Portal Fórum 7Masters Ferramentas Cursos onlineJAVASCRIPT PM2 – mantendo o node.js no ar 09 de janeiro de 2014 por João Martins O módulo PM2 é um gerenciador de processos para aplicações Node.js em modo cli (command line) bem como, um distribuidor automático de “cores”. Neste artigo iremos simular uma queda do processo node.js e sua reinicialização “auto-magicamente”. Para isto iremos usar o exemplo básico de um http server fornecido no próprio site node.js 1 # touch app.js 1 var http = require( 'http' ); 2 http.createServer( function (req, res) { 3 res.writeHead(200, { 'Content-Type' : 'text/plain' }); 4 res.end( 'Hello World\n' ); 5 }).listen(1337, '127.0.0.1' ); 6 console.log( 'Server running at http://127.0.0.1:1337/ ' ); Instalando o PM2 em modo global: 1 # npm install pm2 -g Iniciando o PM2 em modo fork: Estamos usando o modo Fork (-x) o qual inicia o node em um processo a parte: 1 ` # pm2 start app.js -x Verificando se o processo foi iniciado com sucesso: 1 pm2 start app.js -x 2 PM2 Process successfully started 3 ┌──────────┬────┬──────┬──────┬────────┬──────┬───────────┬───── 4 │ App Name │ id │ mode │ PID │ status │ port │ Restarted │ Upti 5 ├──────────┼────┼──────┼──────┼────────┼──────┼───────────┼───── 6 │ app │ 0 │ fork │ 4715 │ online │ │ 0 │ 0s 7 └──────────┴────┴──────┴──────┴────────┴──────┴───────────┴───── Agora vamos criar uma rota e forçar um erro: 1 var http = require( 'http' ); 2 http.createServer( function (req, res) { 3 res.writeHead(200, { 'Content-Type' : 'text/plain' }); ÚLTIMAS NOTÍCIAS 28/01 ÀS 05H40 Google Glass ganha modelos para lentes de grau 28/01 ÀS 04H35 Apesar do aumento da velocidade da Internet, Brasil cai para 84º em ranking mundial 28/01 ÀS 04H00 LinkedIn libera pesquisa que revela o perfil dos usuários no Brasil 28/01 ÀS 03H40 NSA intercepta dados de usuários de apps móveis 28/01 ÀS 02H30 Mercado de smartphones ultrapassa marca de 1 bilhão de aparelhos vendidos em 2013 TODAS AS NOTÍCIAS » imasters.com.br/front-end/javascript/pm2-mantendo-o-node-js-no-ar/ 1/3 " id="pdf-obj-0-187" src="pdf-obj-0-187.jpg">

ÚLTIMAS NOTÍCIAS

28/01 ÀS 05H40

28/01 ÀS 04H35

28/01 ÀS 04H00

28/01 ÀS 03H40

28/01 ÀS 02H30

28/01/14

PM2 - mantendo o node.js no ar | iMasters

4

 

5

if (req.url=='/test'){

6

res.end('Hello World\n');

7

qq.coisa = qq.coisa; // Aqui forçamos o erro

8

}else

9

console.log('a rota é: /test');

10

}).listen(1337, '127.0.0.1');

11

console.log('Server running at http://127.0.0.1:1337/');

Agora vamos realizar um acesso para o erro ocorrer:

Notem que este acesso não apresentou o output error no terminal/console.

1

# pm2 list

2

Notem que agora temos "1" na coluna Restarted

 

Verificando se o erro ocorreu e reiniciando o node.js “auto-magicamente”:

 

1

 

# pm2 list

2

 

3

 

PM2 Process listing

 

4

┌──────────┬────┬──────┬──────┬────────┬──────┬───────────┬─────

5

│ App Name │ id │ mode │ PID │ status │ port │ Restarted │ Upti

6

├──────────┼────┼──────┼──────┼────────┼──────┼───────────┼─────

7

│ app

│ 0 │ fork │ 4719 │ online │

1 │ 29s

8

└──────────┴────┴──────┴──────┴────────┴──────┴───────────┴─────

1 # pm2 list 2 Notem que agora temos "1" na coluna Restarted Verificando se o

Acessando os logs de erros que agora estão no PM2:

 

1

#cat /root/.pm2/logs/app-err.log

2

 

3

app.js:7

4

 

qq.coisa = qq.coisa; //aqui está o erro que forçamos..

5

^

6

ReferenceError: qq is not defined

 

7

at Server.<anonymous> (/root/node-http/app.js:7:3)

 

8

at Server.EventEmitter.emit (events.js:98:17)

9

at HTTPParser.parser.onIncoming (http.js:2108:12)

10

at HTTPParser.parserOnHeadersComplete [as onHeadersComplete

11

at Socket.socket.ondata (http.js:1966:22)

 

12

at TCP.onread (net.js:525:27)

1 # pm2 list 2 Notem que agora temos "1" na coluna Restarted Verificando se o

Outros comandos interessantes:

  • 1 #pm2 monit -exibe o consumo de CPU e memória para cada processo

  • 2 #pm2 web - API que escuta na porta 9615 e gera um log em JSON m

  • 3 #pm2 reload all - reinicia o node sem perder as conexões (soment

DESTAQUES

28/01/14 PM2 - mantendo o node.js no ar | iMasters 4 5 if (req.url== '/test' ){http://127.0.0.1:1337/ ' ); Agora vamos realizar um acesso para o erro ocorrer: curl http://localhost:8080/test Notem que este acesso não apresentou o output error no terminal/console. 1 # pm2 list 2 Notem que agora temos "1" na coluna Restarted Verificando se o erro ocorreu e reiniciando o node.js “auto-magicamente”: 1 # pm2 list 2 3 PM2 Process listing 4 ┌──────────┬────┬──────┬──────┬────────┬──────┬───────────┬───── 5 │ App Name │ id │ mode │ PID │ status │ port │ Restarted │ Upti 6 ├──────────┼────┼──────┼──────┼────────┼──────┼───────────┼───── 7 │ app │ 0 │ fork │ 4719 │ online │ │ 1 │ 29s 8 └──────────┴────┴──────┴──────┴────────┴──────┴───────────┴───── Acessando os logs de erros que agora estão no PM2: 1 #cat /root/.pm2/logs/app-err.log 2 3 app.js:7 4 qq.coisa = qq.coisa; //aqui está o erro que forçamos.. 5 ^ 6 ReferenceError: qq is not defined 7 at Server.<anonymous> (/root/node-http/app.js:7:3) 8 at Server.EventEmitter.emit (events.js:98:17) 9 at HTTPParser.parser.onIncoming (http.js:2108:12) 10 at HTTPParser.parserOnHeadersComplete [as onHeadersComplete 11 at Socket.socket.ondata (http.js:1966:22) 12 at TCP.onread (net.js:525:27) Outros comandos interessantes: 1 #pm2 monit -exibe o consumo de CPU e memória para cada processo 2 #pm2 web - API que escuta na porta 9615 e gera um log em JSON m 3 #pm2 reload all - reinicia o node sem perder as conexões (soment DESTAQUES IMASTERS BOX Catálogo completo de ferramentas online para auxílio de desenvolvedores. LABORATÓRIO DE SCRIPTS PHP Participe do laboratório público e colaborativo de scripts PHP criado pelos moderadores e participantes do Fórum PHP iMasters Find us on Facebook iMasters LLiikkee 76,453 people like iMasters. Artigos relacionados Geocoding no Google Docs: limites GeoJSON com Koordinates Vídeo: JavaScript Injeção de idiomático dependência com Node.js – JavaScript #Melhores2013 APIs, JavaScript Facebook social plugin JavaScript Comente! Comente! Comente! imasters.com.br/front-end/javascript/pm2-mantendo-o-node-js-no-ar/ 2/3 " id="pdf-obj-1-251" src="pdf-obj-1-251.jpg">

Catálogo completo de ferramentas online para auxílio de desenvolvedores.

28/01/14 PM2 - mantendo o node.js no ar | iMasters 4 5 if (req.url== '/test' ){http://127.0.0.1:1337/ ' ); Agora vamos realizar um acesso para o erro ocorrer: curl http://localhost:8080/test Notem que este acesso não apresentou o output error no terminal/console. 1 # pm2 list 2 Notem que agora temos "1" na coluna Restarted Verificando se o erro ocorreu e reiniciando o node.js “auto-magicamente”: 1 # pm2 list 2 3 PM2 Process listing 4 ┌──────────┬────┬──────┬──────┬────────┬──────┬───────────┬───── 5 │ App Name │ id │ mode │ PID │ status │ port │ Restarted │ Upti 6 ├──────────┼────┼──────┼──────┼────────┼──────┼───────────┼───── 7 │ app │ 0 │ fork │ 4719 │ online │ │ 1 │ 29s 8 └──────────┴────┴──────┴──────┴────────┴──────┴───────────┴───── Acessando os logs de erros que agora estão no PM2: 1 #cat /root/.pm2/logs/app-err.log 2 3 app.js:7 4 qq.coisa = qq.coisa; //aqui está o erro que forçamos.. 5 ^ 6 ReferenceError: qq is not defined 7 at Server.<anonymous> (/root/node-http/app.js:7:3) 8 at Server.EventEmitter.emit (events.js:98:17) 9 at HTTPParser.parser.onIncoming (http.js:2108:12) 10 at HTTPParser.parserOnHeadersComplete [as onHeadersComplete 11 at Socket.socket.ondata (http.js:1966:22) 12 at TCP.onread (net.js:525:27) Outros comandos interessantes: 1 #pm2 monit -exibe o consumo de CPU e memória para cada processo 2 #pm2 web - API que escuta na porta 9615 e gera um log em JSON m 3 #pm2 reload all - reinicia o node sem perder as conexões (soment DESTAQUES IMASTERS BOX Catálogo completo de ferramentas online para auxílio de desenvolvedores. LABORATÓRIO DE SCRIPTS PHP Participe do laboratório público e colaborativo de scripts PHP criado pelos moderadores e participantes do Fórum PHP iMasters Find us on Facebook iMasters LLiikkee 76,453 people like iMasters. Artigos relacionados Geocoding no Google Docs: limites GeoJSON com Koordinates Vídeo: JavaScript Injeção de idiomático dependência com Node.js – JavaScript #Melhores2013 APIs, JavaScript Facebook social plugin JavaScript Comente! Comente! Comente! imasters.com.br/front-end/javascript/pm2-mantendo-o-node-js-no-ar/ 2/3 " id="pdf-obj-1-257" src="pdf-obj-1-257.jpg">

Participe do laboratório público e colaborativo de scripts PHP criado pelos moderadores e participantes do Fórum PHP iMasters

28/01/14 PM2 - mantendo o node.js no ar | iMasters 4 5 if (req.url== '/test' ){http://127.0.0.1:1337/ ' ); Agora vamos realizar um acesso para o erro ocorrer: curl http://localhost:8080/test Notem que este acesso não apresentou o output error no terminal/console. 1 # pm2 list 2 Notem que agora temos "1" na coluna Restarted Verificando se o erro ocorreu e reiniciando o node.js “auto-magicamente”: 1 # pm2 list 2 3 PM2 Process listing 4 ┌──────────┬────┬──────┬──────┬────────┬──────┬───────────┬───── 5 │ App Name │ id │ mode │ PID │ status │ port │ Restarted │ Upti 6 ├──────────┼────┼──────┼──────┼────────┼──────┼───────────┼───── 7 │ app │ 0 │ fork │ 4719 │ online │ │ 1 │ 29s 8 └──────────┴────┴──────┴──────┴────────┴──────┴───────────┴───── Acessando os logs de erros que agora estão no PM2: 1 #cat /root/.pm2/logs/app-err.log 2 3 app.js:7 4 qq.coisa = qq.coisa; //aqui está o erro que forçamos.. 5 ^ 6 ReferenceError: qq is not defined 7 at Server.<anonymous> (/root/node-http/app.js:7:3) 8 at Server.EventEmitter.emit (events.js:98:17) 9 at HTTPParser.parser.onIncoming (http.js:2108:12) 10 at HTTPParser.parserOnHeadersComplete [as onHeadersComplete 11 at Socket.socket.ondata (http.js:1966:22) 12 at TCP.onread (net.js:525:27) Outros comandos interessantes: 1 #pm2 monit -exibe o consumo de CPU e memória para cada processo 2 #pm2 web - API que escuta na porta 9615 e gera um log em JSON m 3 #pm2 reload all - reinicia o node sem perder as conexões (soment DESTAQUES IMASTERS BOX Catálogo completo de ferramentas online para auxílio de desenvolvedores. LABORATÓRIO DE SCRIPTS PHP Participe do laboratório público e colaborativo de scripts PHP criado pelos moderadores e participantes do Fórum PHP iMasters Find us on Facebook iMasters LLiikkee 76,453 people like iMasters. Artigos relacionados Geocoding no Google Docs: limites GeoJSON com Koordinates Vídeo: JavaScript Injeção de idiomático dependência com Node.js – JavaScript #Melhores2013 APIs, JavaScript Facebook social plugin JavaScript Comente! Comente! Comente! imasters.com.br/front-end/javascript/pm2-mantendo-o-node-js-no-ar/ 2/3 " id="pdf-obj-1-263" src="pdf-obj-1-263.jpg">
28/01/14 PM2 - mantendo o node.js no ar | iMasters 4 5 if (req.url== '/test' ){http://127.0.0.1:1337/ ' ); Agora vamos realizar um acesso para o erro ocorrer: curl http://localhost:8080/test Notem que este acesso não apresentou o output error no terminal/console. 1 # pm2 list 2 Notem que agora temos "1" na coluna Restarted Verificando se o erro ocorreu e reiniciando o node.js “auto-magicamente”: 1 # pm2 list 2 3 PM2 Process listing 4 ┌──────────┬────┬──────┬──────┬────────┬──────┬───────────┬───── 5 │ App Name │ id │ mode │ PID │ status │ port │ Restarted │ Upti 6 ├──────────┼────┼──────┼──────┼────────┼──────┼───────────┼───── 7 │ app │ 0 │ fork │ 4719 │ online │ │ 1 │ 29s 8 └──────────┴────┴──────┴──────┴────────┴──────┴───────────┴───── Acessando os logs de erros que agora estão no PM2: 1 #cat /root/.pm2/logs/app-err.log 2 3 app.js:7 4 qq.coisa = qq.coisa; //aqui está o erro que forçamos.. 5 ^ 6 ReferenceError: qq is not defined 7 at Server.<anonymous> (/root/node-http/app.js:7:3) 8 at Server.EventEmitter.emit (events.js:98:17) 9 at HTTPParser.parser.onIncoming (http.js:2108:12) 10 at HTTPParser.parserOnHeadersComplete [as onHeadersComplete 11 at Socket.socket.ondata (http.js:1966:22) 12 at TCP.onread (net.js:525:27) Outros comandos interessantes: 1 #pm2 monit -exibe o consumo de CPU e memória para cada processo 2 #pm2 web - API que escuta na porta 9615 e gera um log em JSON m 3 #pm2 reload all - reinicia o node sem perder as conexões (soment DESTAQUES IMASTERS BOX Catálogo completo de ferramentas online para auxílio de desenvolvedores. LABORATÓRIO DE SCRIPTS PHP Participe do laboratório público e colaborativo de scripts PHP criado pelos moderadores e participantes do Fórum PHP iMasters Find us on Facebook iMasters LLiikkee 76,453 people like iMasters. Artigos relacionados Geocoding no Google Docs: limites GeoJSON com Koordinates Vídeo: JavaScript Injeção de idiomático dependência com Node.js – JavaScript #Melhores2013 APIs, JavaScript Facebook social plugin JavaScript Comente! Comente! Comente! imasters.com.br/front-end/javascript/pm2-mantendo-o-node-js-no-ar/ 2/3 " id="pdf-obj-1-265" src="pdf-obj-1-265.jpg">

Find us on Facebook

iMasters LLiikkee 76,453 people like iMasters. Artigos relacionados Geocoding no Google Docs: limites GeoJSON com Koordinates
iMasters
LLiikkee
76,453 people like iMasters.
Artigos relacionados
Geocoding no Google
Docs: limites GeoJSON
com Koordinates
Vídeo: JavaScript
Injeção de
idiomático
dependência com
Node.js –
JavaScript
#Melhores2013
APIs, JavaScript
Facebook social plugin
JavaScript
Comente!

28/01/14

PM2 - mantendo o node.js no ar | iMasters

28/01/14 PM2 - mantendo o node.js no ar | iMasters João Martins é especialista em Nodejs,Siga o perfil do iMasters LinkedIn Cadastre-se no grupo iMasters g itHub Códigos iMasters DEV RSS Assine os feeds Copyright © 2014 Todos os direitos reservados SOCIAL MEDIA NEWSLETTER Fique por dentro de todas as novidades, eventos, cursos, conteúdos exclusivos e muito mais. Sobre o iMasters Política de Privacidade Fale conosco faleconosco@imasters.com.br Seu nome Seu e-mail ENVIAR » imasters.com.br/front-end/javascript/pm2-mantendo-o-node-js-no-ar/ 3/3 " id="pdf-obj-2-6" src="pdf-obj-2-6.jpg">
28/01/14 PM2 - mantendo o node.js no ar | iMasters João Martins é especialista em Nodejs,Siga o perfil do iMasters LinkedIn Cadastre-se no grupo iMasters g itHub Códigos iMasters DEV RSS Assine os feeds Copyright © 2014 Todos os direitos reservados SOCIAL MEDIA NEWSLETTER Fique por dentro de todas as novidades, eventos, cursos, conteúdos exclusivos e muito mais. Sobre o iMasters Política de Privacidade Fale conosco faleconosco@imasters.com.br Seu nome Seu e-mail ENVIAR » imasters.com.br/front-end/javascript/pm2-mantendo-o-node-js-no-ar/ 3/3 " id="pdf-obj-2-9" src="pdf-obj-2-9.jpg">

João Martins

é especialista em Nodejs, Python, NoSql, Manjaro Linux, Hi-End Audio, Vinyl, Headphones, 80's, ebm and J.S Bach. Já trabalhou nas empresas Terra, AT&T L.A, TIVIT, e atualmente é um dos fundadores da Nodeware. Acompanhe no Twitter @jmartinstw

Página do autor Email

Leia os últimos artigos publicados por João Martins

Level – Um framework NoSql para Node.js PM2 – mantendo o node.js no ar

QUAL A SUA OPINIÃO?

Escreva seu comentário aqui...

28/01/14 PM2 - mantendo o node.js no ar | iMasters João Martins é especialista em Nodejs,Siga o perfil do iMasters LinkedIn Cadastre-se no grupo iMasters g itHub Códigos iMasters DEV RSS Assine os feeds Copyright © 2014 Todos os direitos reservados SOCIAL MEDIA NEWSLETTER Fique por dentro de todas as novidades, eventos, cursos, conteúdos exclusivos e muito mais. Sobre o iMasters Política de Privacidade Fale conosco faleconosco@imasters.com.br Seu nome Seu e-mail ENVIAR » imasters.com.br/front-end/javascript/pm2-mantendo-o-node-js-no-ar/ 3/3 " id="pdf-obj-2-27" src="pdf-obj-2-27.jpg">

Twitter

LinkedIn

gitHub

RSS

28/01/14 PM2 - mantendo o node.js no ar | iMasters João Martins é especialista em Nodejs,Siga o perfil do iMasters LinkedIn Cadastre-se no grupo iMasters g itHub Códigos iMasters DEV RSS Assine os feeds Copyright © 2014 Todos os direitos reservados SOCIAL MEDIA NEWSLETTER Fique por dentro de todas as novidades, eventos, cursos, conteúdos exclusivos e muito mais. Sobre o iMasters Política de Privacidade Fale conosco faleconosco@imasters.com.br Seu nome Seu e-mail ENVIAR » imasters.com.br/front-end/javascript/pm2-mantendo-o-node-js-no-ar/ 3/3 " id="pdf-obj-2-48" src="pdf-obj-2-48.jpg">
SOCIAL MEDIA
SOCIAL MEDIA
28/01/14 PM2 - mantendo o node.js no ar | iMasters João Martins é especialista em Nodejs,Siga o perfil do iMasters LinkedIn Cadastre-se no grupo iMasters g itHub Códigos iMasters DEV RSS Assine os feeds Copyright © 2014 Todos os direitos reservados SOCIAL MEDIA NEWSLETTER Fique por dentro de todas as novidades, eventos, cursos, conteúdos exclusivos e muito mais. Sobre o iMasters Política de Privacidade Fale conosco faleconosco@imasters.com.br Seu nome Seu e-mail ENVIAR » imasters.com.br/front-end/javascript/pm2-mantendo-o-node-js-no-ar/ 3/3 " id="pdf-obj-2-54" src="pdf-obj-2-54.jpg">

NEWSLETTER

  • Fique por dentro de todas as novidades, eventos, cursos, conteúdos exclusivos e muito mais.

Seu nome

Seu e-mail

ENVIAR »