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

Post on 21-Jan-2017

896 views 0 download

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

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

Existe um escopo global, similar ao dos navegadores?

Cuidado, evite poluir o escopo global

Exibindo os Global Objects

1. console.log(global);

Exibindo apenas as propriedades dos Global Objects

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

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

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

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

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

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

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