Algumas vez fui questionado como se faz para construir um pacote em Javascript que posteriormente possa ser utilizado em um ou vários projetos com Node.JS igualmente os pacotes padrão do framework ou os que são instalados via NPM.
Bem, é muito simples. Primeiro devemos conhecer a afirmativa de exportação do Javascript, o “exports”, ele serve para prover variáveis, funções ou objetos de um script Javascript para outro, exemplo:
// Arquivo circulo.jsvar PI = Math.PI; exports.nome = "circulo"; exports.area = function (raio) { return PI * raio * raio;}; exports.circunferencia = function (raio) { return 2 * PI * raio;};
Assim, nosso pacote “circulo.js”, já pode ser importado para qualquer projeto que precisarmos dele, utilizando a afirmativa “require”, exemplo:
// Aquivo teste.jsvar circulo = require('./circulo.js'); console.log('Nome do pacote: ' + circulo.nome);console.log('A área de um circulo de raio 4 é: ' + circulo.area(4));console.log('A circunferência de um circulo de raio 4 é: ' + circulo.circunferencia(4));
Muito bem, como mencionado antes, com a afirmativa “exports” podemos prover variáveis, funções ou objetos de um script a outro. Vamos então construir um exemplo mais avançado, com um Object Map (“Object Map, é o nome mais adequado para se referir a Objetos no Javascript”), exemplo:
// Arquivo elementos.jsvar circulo = require('./circulo.js'); // Elemento Caixaexports.Caixa = function(largura, comprimento, altura){ this.largura = largura || 0;; this.comprimento = comprimento || 0; this.altura = altura || 0; this.calcularArea = function(){ return ((this.largura * this.comprimento) * 2) + ((this.largura * this.altura) * 2) + ((this.comprimento * this.altura) * 2); }} // Elemento Coneexports.Cone = function(raio, altura){ this.raio = raio || 0;; this.altura = altura || 0; this.calcularArea = function(){ var geratiz = Math.pow(Math.pow(raio, 2) + Math.pow(altura, 2), 0.5); return circulo.area(this.raio) + (Math.PI * this.raio * geratiz); }}
Alterando o arquivo “teste.js” para:
// Aquivo teste.jsvar circulo = require('./circulo.js');var elemento = require('./elementos.js'); function exibir(){ this.escrever = function(mensagem){ console.log(mensagem); }} exb = new exibir(); caixa = new elemento.Caixa(2, 2, 2);cone = new elemento.Cone(3, 5); exb.escrever('Nome do pacote: ' + circulo.nome);exb.escrever('A área de um circulo de raio 4 é: ' + circulo.area(4));exb.escrever('A área da caixa é: ' + caixa.calcularArea());exb.escrever('A área do cone é: ' + cone.calcularArea());
Note que agora estamos importando também, objetos, então, desta forma você pode construir seus pacotes e reutilizar eles em seus códigos, e se você acha ele realmente útil, vá no site oficial do NPM crie seu cadastro e compartilhe seu pacote com a comunidade.
0sem comentários ainda