Por questões de manutenibilidade, separação de responsabilidades, reaproveitamento de código, etc, é importante que nossas aplicações, principalmente aquelas de grande porte, sejam separadas em módulos.
Em Node.js, cada módulo é criado em seu respectivo arquivo JavaScript.
Para utilizarmos um módulo em nossa aplicação, utilizamos a função require, passando como parâmetro o nome ou caminho do módulo (não é necessário informar a extensão js).
O Node.js já vem com vários módulos para que possamos utilizar, os Core Modules, como o módulo http por exemplo.
Para importação deste módulos, informamos para a função require apenas o nome do módulo e a mesma saberá onde encontrá-lo, por exemplo: require('http').
Além dos Core Modules, existem também os módulos criados por terceiros, que podemos instalar através do NPM (Node Package Manager) utilizando o comando npm install nome_modulo.
Estes módulos são instalados em uma pasta chamada node_modules que é criada na pasta de nosso projeto no momento da instalação destes módulos. Para carregá-los, informamos apenas seu nome para a função require (sem o caminho) que a mesma saberá onde encontrá-los.
No entanto, também temos a possibilidade de criar nossos próprios módulos de acordo com nossas necessidades.
Suponhamos que temos um arquivo chamado app.js com o seguinte código:
var meuModulo = require('./meuModulo');
meuModulo.foo(5, 5);
O "./" indica para a função require buscar pelo modulo, que está no arquivo meuModulo.js, no mesmo diretório onde o arquivo app.js se encontra.
O arquivo meuModulo.js, contém o seguinte código:
var x = 10;
var o = {
foo: function(a, b) {
console.log((a + b) * x);
}
};
module.exports = o;
Neste caso, estamos exportando o objeto o, a variável x não será acessível fora do nosso módulo, portanto ela é privada a ele.
O objeto module.exports é local ao nosso módulo. E é este objeto que é retornado pela função require.
Espero que este post tenha sido útil.
Abraço.
Nenhum comentário:
Postar um comentário