SlideShare uma empresa Scribd logo
Rodrigo Branas – @rodrigobranas - http://www.agilecode.com.br
Global Objects
Não se esqueça que tudo que é
definido dentro do módulo é privado
Criando uma variável
index.js
1. var	
  max	
  =	
  10000;	
  
2. var	
  serialGenerator	
  =	
  require('./serialGenerator');	
  
3. console.log(serialGenerator.generate());
Tentando utilizar a variável
serialGenerator.js
1. module.exports.generate	
  =	
  function	
  ()	
  {	
  
2. 	
  	
  return	
  Math.floor(Math.random()	
  *	
  max);	
  
3. };
Node.js - #3 - Global Objects - Rodrigo Branas
Existe um escopo global, similar
ao dos navegadores?
Cuidado, evite poluir o escopo global
Exibindo os Global Objects
1. console.log(global);
Node.js - #3 - Global Objects - Rodrigo Branas
Exibindo apenas as propriedades
dos Global Objects
1. console.log(Object.keys(global));
Node.js - #3 - Global Objects - Rodrigo Branas
Onde estão as operações require e
os objetos module e exports?
https://github.com/nodejs/node-v0.x-archive/blob/master/src/node.js
Node.js - #3 - Global Objects - Rodrigo Branas
Criando uma variável global
utilizando global, GLOBAL e root
1. global.max	
  =	
  10000;	
  
2. GLOBAL.max	
  =	
  10000;	
  
3. root.max	
  =	
  10000;
Criando uma variável
index.js
1. global.max	
  =	
  10000;	
  
2. var	
  serialGenerator	
  =	
  require('./serialGenerator');	
  
3. console.log(serialGenerator.generate());
Criando uma variável
index.js
1. GLOBAL.max	
  =	
  10000;	
  
2. var	
  serialGenerator	
  =	
  require('./serialGenerator');	
  
3. console.log(serialGenerator.generate());
Criando uma variável
index.js
1. root.max	
  =	
  10000;	
  
2. var	
  serialGenerator	
  =	
  require('./serialGenerator');	
  
3. console.log(serialGenerator.generate());
Tentando utilizar a variável
serialGenerator.js
1. module.exports.generate	
  =	
  function	
  ()	
  {	
  
2. 	
  	
  return	
  Math.floor(Math.random()	
  *	
  global.max);	
  
3. };
Tentando utilizar a variável
serialGenerator.js
1. module.exports.generate	
  =	
  function	
  ()	
  {	
  
2. 	
  	
  return	
  Math.floor(Math.random()	
  *	
  GLOBAL.max);	
  
3. };
Tentando utilizar a variável
serialGenerator.js
1. module.exports.generate	
  =	
  function	
  ()	
  {	
  
2. 	
  	
  return	
  Math.floor(Math.random()	
  *	
  root.max);	
  
3. };
Node.js - #3 - Global Objects - Rodrigo Branas
Qual é a diferença entre os objetos
global, GLOBAL e root?
https://github.com/nodejs/node-v0.x-archive/blob/master/src/node.js
Node.js - #3 - Global Objects - Rodrigo Branas
Também é possível criar uma variável
global, não utilizando var
1. max	
  =	
  10000;	
  
2. var	
  serialGenerator	
  =	
  require('./serialGenerator');	
  
3. console.log(serialGenerator.generate());
Utilizando uma variável global
serialGenerator.js
1. module.exports.generate	
  =	
  function	
  ()	
  {	
  
2. 	
  	
  return	
  Math.floor(Math.random()	
  *	
  max);	
  
3. };
Node.js - #3 - Global Objects - Rodrigo Branas
Como fazer para criar variáveis
globais sem utilizar o escopo global?
Utilize um módulo
config.js
1. exports.max	
  =	
  10000;
Utilizando uma variável global
serialGenerator.js
1. var	
  config	
  =	
  require('./config');	
  
2. 	
  	
  	
  
3. module.exports.generate	
  =	
  function	
  ()	
  {	
  
4. 	
  	
  return	
  Math.floor(Math.random()	
  *	
  config.max);	
  
5. };
Rodrigo Branas	
  
Agile Code: http://www.agilecode.com.br
Twitter: @rodrigobranas
SlideShare: http://www.slideshare.com/rodrigobranas
YouTube: http://www.youtube.com/rodrigobranas
LinkedIn: http://br.linkedin.com/in/rodrigobranas
+Plus: https://plus.google.com/+RodrigoBranas
GitHub: http://www.github.com/rodrigobranas

Mais conteúdo relacionado

PDF
Node.js - #2 - Sistema de Módulos - Rodrigo Branas
PDF
Node.js - #5 - Process - Rodrigo Branas
PDF
Node.js - #4 - Timers - Rodrigo Branas
PDF
JavaScript Hacks
PPT
Spock Framework
PPT
Spock Framework 2
PDF
TDC2016SP - Trilha Node.Js
PPT
Mobileconf dicas-android
Node.js - #2 - Sistema de Módulos - Rodrigo Branas
Node.js - #5 - Process - Rodrigo Branas
Node.js - #4 - Timers - Rodrigo Branas
JavaScript Hacks
Spock Framework
Spock Framework 2
TDC2016SP - Trilha Node.Js
Mobileconf dicas-android

Mais procurados (20)

PDF
Node VM and ChildProcess: Executando códigos não confiáveis no seu servidor
PDF
Node VM and ChildProcess: Executando códigos não confiáveis no seu servidor
PPTX
Threads tasks e o tal do thread pool
PDF
Funcionamento interno do node.js e boas práticas
PDF
Curso de Node JS Básico
PPTX
Node.js para desenvolvedores .NET
PDF
Dicas e Truques TypeScript
PDF
PHP e Mysql - DELETE
PDF
Realtime com node.js e socket.io
PDF
PHP fora da Web
PDF
Crawling - Coleta de dados na Web com PHP
PDF
Zabbix Conference LatAm 2019 - Automação: Ganhando produtividade
PDF
Acessando o MySql com o Python
PDF
Python e bancos NoSQL
PDF
7Masters jQuery - boas práticas em JavaScriptQuery, com Bruno Rocha
PDF
JavaScript - De verdade
PDF
Introdução a worker
PDF
Let's log!
PPTX
Coroutines tech summit
PPTX
Minicurso: Desenvolvimento na velocidade da luz com Ruby on Rails
Node VM and ChildProcess: Executando códigos não confiáveis no seu servidor
Node VM and ChildProcess: Executando códigos não confiáveis no seu servidor
Threads tasks e o tal do thread pool
Funcionamento interno do node.js e boas práticas
Curso de Node JS Básico
Node.js para desenvolvedores .NET
Dicas e Truques TypeScript
PHP e Mysql - DELETE
Realtime com node.js e socket.io
PHP fora da Web
Crawling - Coleta de dados na Web com PHP
Zabbix Conference LatAm 2019 - Automação: Ganhando produtividade
Acessando o MySql com o Python
Python e bancos NoSQL
7Masters jQuery - boas práticas em JavaScriptQuery, com Bruno Rocha
JavaScript - De verdade
Introdução a worker
Let's log!
Coroutines tech summit
Minicurso: Desenvolvimento na velocidade da luz com Ruby on Rails
Anúncio

Destaque (18)

PDF
Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo Branas
PDF
Node.js - #6 - Core Modules - net - Rodrigo Branas
PDF
Node.js - #1 - Introdução - Rodrigo Branas
PPTX
Criando serviços com AngularJS
PPTX
Utilizando diretivas com AngularJS
PPTX
Introdução ao AngularJS
PPTX
A evolução do AngularJS
PPTX
PPTX
Domain-Driven Design
PDF
#5 - Git - Contribuindo com um repositório remoto
PPTX
Validando Formulários com AngularJS
PDF
HTTP Interceptors com AngularJS
PPTX
HTTP, JSON, REST e AJAX com AngularJS
PPTX
Introdução ao AngularJS!
PPTX
AngularJS - 10 passos para aprender a criar suas directivas
PPTX
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
PPTX
PPTX
Construindo Diretivas com AngularJS
Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo Branas
Node.js - #6 - Core Modules - net - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo Branas
Criando serviços com AngularJS
Utilizando diretivas com AngularJS
Introdução ao AngularJS
A evolução do AngularJS
Domain-Driven Design
#5 - Git - Contribuindo com um repositório remoto
Validando Formulários com AngularJS
HTTP Interceptors com AngularJS
HTTP, JSON, REST e AJAX com AngularJS
Introdução ao AngularJS!
AngularJS - 10 passos para aprender a criar suas directivas
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Construindo Diretivas com AngularJS
Anúncio

Mais de Rodrigo Branas (17)

PDF
Clean Architecture
PDF
#6 - Git - Desfazendo as coisas
PDF
#1 - Git - Introdução
PDF
#4 - Git - Stash
PDF
#3 - Git - Branching e Merging
PDF
#2 - Git - DAG
PPTX
JavaScript - Date
PPTX
JavaScript - Expressões Regulares
PPTX
Automação de Testes com AngularJS
PPTX
Scope AngularJS
PPTX
Criando Filtros com AngularJS
PPTX
Criando aplicações Single-Page com AngularJS
PPTX
Técnicas de Refactoring
PPTX
Selenium - WebDriver
PPTX
Test-Driven Development com JavaScript, Jasmine Karma
PPTX
PPTX
Desvendando a linguagem JavaScript
Clean Architecture
#6 - Git - Desfazendo as coisas
#1 - Git - Introdução
#4 - Git - Stash
#3 - Git - Branching e Merging
#2 - Git - DAG
JavaScript - Date
JavaScript - Expressões Regulares
Automação de Testes com AngularJS
Scope AngularJS
Criando Filtros com AngularJS
Criando aplicações Single-Page com AngularJS
Técnicas de Refactoring
Selenium - WebDriver
Test-Driven Development com JavaScript, Jasmine Karma
Desvendando a linguagem JavaScript

Último (9)

PPTX
AULA DE HTML E CSS PARA INICIANTES EM INFORMÁTICA
PDF
Agosto-Lilas-Conscientizacao-e-Combate-a-Violencia-contra-a-Mulher.pdf
PPTX
Classifirrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrcação_IPAQ.pptx
PDF
A sua pontuação aumenta ao escolher uma categoria, preencher uma descrição lo...
PPTX
TURMA modelo de modelo apresentação 4DE.pptx
PPTX
Fundamentos do Desenvolvimento Web. Fundamentos do Desenvolvimento Web.Fundam...
PDF
Metodologias ágeis - Slides - aulas 1 a 5.pdf
PDF
Apostila_de_Laboratorio_de_Quimica_Inorg.pdf
PDF
Certificado de Conclusão Jornada Inteligência Artificial
AULA DE HTML E CSS PARA INICIANTES EM INFORMÁTICA
Agosto-Lilas-Conscientizacao-e-Combate-a-Violencia-contra-a-Mulher.pdf
Classifirrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrcação_IPAQ.pptx
A sua pontuação aumenta ao escolher uma categoria, preencher uma descrição lo...
TURMA modelo de modelo apresentação 4DE.pptx
Fundamentos do Desenvolvimento Web. Fundamentos do Desenvolvimento Web.Fundam...
Metodologias ágeis - Slides - aulas 1 a 5.pdf
Apostila_de_Laboratorio_de_Quimica_Inorg.pdf
Certificado de Conclusão Jornada Inteligência Artificial

Node.js - #3 - Global Objects - Rodrigo Branas