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

32
Rodrigo Branas – @rodrigobranas - http://www.agilecode.com.br Global Objects

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

Page 1: Node.js - #3 - Global Objects - Rodrigo Branas

Rodrigo Branas – @rodrigobranas - http://www.agilecode.com.br

Global Objects

Page 2: Node.js - #3 - Global Objects - Rodrigo Branas

Não se esqueça que tudo que é definido dentro do módulo é privado

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

Criando uma variável index.js

1. var  max  =  10000;  2. var  serialGenerator  =  require('./serialGenerator');  3. console.log(serialGenerator.generate());

Page 4: Node.js - #3 - Global Objects - Rodrigo Branas

Tentando utilizar a variável serialGenerator.js

1. module.exports.generate  =  function  ()  {  2.    return  Math.floor(Math.random()  *  max);  3. };

Page 5: Node.js - #3 - Global Objects - Rodrigo Branas
Page 6: Node.js - #3 - Global Objects - Rodrigo Branas

Existe um escopo global, similar ao dos navegadores?

Page 7: Node.js - #3 - Global Objects - Rodrigo Branas

Cuidado, evite poluir o escopo global

Page 8: Node.js - #3 - Global Objects - Rodrigo Branas

Exibindo os Global Objects

1. console.log(global);

Page 9: Node.js - #3 - Global Objects - Rodrigo Branas
Page 10: Node.js - #3 - Global Objects - Rodrigo Branas

Exibindo apenas as propriedades dos Global Objects

1. console.log(Object.keys(global));

Page 11: Node.js - #3 - Global Objects - Rodrigo Branas
Page 12: Node.js - #3 - Global Objects - Rodrigo Branas

Onde estão as operações require e os objetos module e exports?

Page 13: Node.js - #3 - Global Objects - Rodrigo Branas

https://github.com/nodejs/node-v0.x-archive/blob/master/src/node.js

Page 14: Node.js - #3 - Global Objects - Rodrigo Branas
Page 15: 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;

Page 16: Node.js - #3 - Global Objects - Rodrigo Branas

Criando uma variável index.js

1. global.max  =  10000;  2. var  serialGenerator  =  require('./serialGenerator');  3. console.log(serialGenerator.generate());

Page 17: Node.js - #3 - Global Objects - Rodrigo Branas

Criando uma variável index.js

1. GLOBAL.max  =  10000;  2. var  serialGenerator  =  require('./serialGenerator');  3. console.log(serialGenerator.generate());

Page 18: Node.js - #3 - Global Objects - Rodrigo Branas

Criando uma variável index.js

1. root.max  =  10000;  2. var  serialGenerator  =  require('./serialGenerator');  3. console.log(serialGenerator.generate());

Page 19: Node.js - #3 - Global Objects - Rodrigo Branas

Tentando utilizar a variável serialGenerator.js

1. module.exports.generate  =  function  ()  {  2.    return  Math.floor(Math.random()  *  global.max);  3. };

Page 20: Node.js - #3 - Global Objects - Rodrigo Branas

Tentando utilizar a variável serialGenerator.js

1. module.exports.generate  =  function  ()  {  2.    return  Math.floor(Math.random()  *  GLOBAL.max);  3. };

Page 21: Node.js - #3 - Global Objects - Rodrigo Branas

Tentando utilizar a variável serialGenerator.js

1. module.exports.generate  =  function  ()  {  2.    return  Math.floor(Math.random()  *  root.max);  3. };

Page 22: Node.js - #3 - Global Objects - Rodrigo Branas
Page 23: Node.js - #3 - Global Objects - Rodrigo Branas

Qual é a diferença entre os objetos global, GLOBAL e root?

Page 24: Node.js - #3 - Global Objects - Rodrigo Branas

https://github.com/nodejs/node-v0.x-archive/blob/master/src/node.js

Page 25: Node.js - #3 - Global Objects - Rodrigo Branas
Page 26: 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());

Page 27: Node.js - #3 - Global Objects - Rodrigo Branas

Utilizando uma variável global serialGenerator.js

1. module.exports.generate  =  function  ()  {  2.    return  Math.floor(Math.random()  *  max);  3. };

Page 28: Node.js - #3 - Global Objects - Rodrigo Branas
Page 29: Node.js - #3 - Global Objects - Rodrigo Branas

Como fazer para criar variáveis globais sem utilizar o escopo global?

Page 30: Node.js - #3 - Global Objects - Rodrigo Branas

Utilize um módulo config.js

1. exports.max  =  10000;

Page 31: Node.js - #3 - Global Objects - Rodrigo Branas

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. };

Page 32: Node.js - #3 - Global Objects - Rodrigo Branas

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