Pereira Caio Ribeiro - Node.js. Aplicacoes web real time com Node.js стр 6.

Шрифт
Фон

o modulo-1 somente será incluído sua versão fixa, a 1.0.0. Utilize este tipo ver-

são para instalar dependências cuja suas atualizações possam quebrar o projeto pelo

simples fato de que certas funcionalidades foram removidas e ainda as utilizamos na

aplicação. O segundo módulo já possui uma certa flexibilidade de update. Ele utiliza

o caractere ~ que faz atualizações a nível de patch (1.0.x), geralmente essas atualizações são seguras, trazendo apenas melhorias ou correções de bugs. O modulo-3

atualiza versões que seja maior ou igual a 1.0.0 em todos os níveis de versão. Em

muitos casos utilizar >= pode ser perigoso, por que a dependência pode ser atua-lizada a nível major ou minor, contendo grandes modificações que podem quebrar

um sistema em produção, comprometendo seu funcionamento e exigindo que você

atualize todo código até voltar ao normal. O último, o modulo-4, utiliza o caractere

"* , este sempre pegará a última versão do módulo em qualquer nível. Ele também pode causar problemas nas atualizações e tem o mesmo comportamento do versionamento do modulo-3. Geralmente ele é utilizado em devDependencies, que

são dependências focadas para testes automatizados, e as atualizações dos módulos

9

1.8. Escopos de variáveis globais

Casa do Código

não prejudicam o comportamento do sistema que já está no ar.

1.8

Escopos de variáveis globais

Assim como no browser, utilizamos o mesmo Javascript no Node.js, ele também

utiliza escopos locais e globais de variáveis. A única diferença é como são implementados esses escopos. No client-side as variáveis globais são criadas da seguinte

maneira:

window.hoje = new Date();

alert(window.hoje);

Em qualquer browser a palavra-chave window permite criar variáveis globais

que são acessadas em qualquer lugar. Já no Node.js utilizamos uma outra keyword

para aplicar essa mesma técnica:

global.hoje = new Date();

console.log(global.hoje);

Ao utilizar global mantemos uma variável global, acessível em qualquer parte

do projeto sem a necessidade de chamá-la via require ou passá-la por parâmetro

em uma função. Esse conceito de variável global é existente na maioria das lingua-

gens de programação, assim como sua utilização, pelo qual é recomendado trabalhar

com o mínimo possível de variáveis globais, para evitar futuros gargalos de memória

na aplicação.

1.9

CommonJS, Como ele funciona?

O Node.js utiliza nativamente o padrão CommonJS para organização e carregamento

de módulos. Na prática, diversas funções deste padrão será utilizada com frequência

em um projeto Node.js. A função require('nome-do-modulo') é um exem-

plo disso, ela carrega um módulo. E para criar um código Javascript que seja mo-

dular e carregável pelo require, utilizam-se as variáveis globais:

exports ou

module.exports. Abaixo apresento-lhe dois exemplos de códigos que utilizam

esse padrão do CommonJS, primeiro crie o código hello.js:

module.exports = function(msg) {

console.log(msg);

};

10

Casa do Código

Capítulo 1. Bem-vindo ao mundo Node.js

E também crie o código human.js com o seguinte código:

exports.hello = function(msg) {

console.log(msg);

};

A diferença entre o hello.js e o human.js esta na maneira de como eles

serão carregados. Em hello.js carregamos uma única função modular e em

human.js é carregado um objeto com funções modulares. Essa é a grande diferença

entre eles. Para entender melhor na prática crie o código app.js para carregar esses

módulos, seguindo o código abaixo:

var hello = require('./hello');

var human = require('./human');

hello('Olá pessoal!');

human.hello('Olá galera!');

Tenha certeza de que os códigos hello.js, human.js e app.js estejam na

mesma pasta e rode no console o comando: node app.js.

E então, o que aconteceu? O resultado foi praticamente o mesmo, o app.js

carregou os módulos: hello.js e human.js via require(), em seguida foi

executado a função hello() que imprimiu a mensagem Olá pessoal! e por úl-

timo o objeto human que executou sua função human.hello('Olá galera!').

Percebam o quão simples é programar com Node.js! Com base nesses pequenos

trechos de código já foi possível criar um código altamente escalável e modular que

utiliza as boas práticas do padrão CommonJS.

11

Capítulo 2

Desenvolvendo aplicações web

2.1

Criando nossa primeira aplicação web

Node.js é multiprotocolo, ou seja, com ele será possível trabalhar com os protoco-

los: HTTP, HTTPS, FTP, SSH, DNS, TCP, UDP, WebSockets e também existem outros

protocolos, que são disponíveis através de módulos não-oficiais criados pela comu-

nidade. Um dos mais utilizados para desenvolver sistemas web é o protocolo HTTP.

De fato, é o protocolo com a maior quantidade de módulos disponíveis para trabalhar

no Node.js. Na prática desenvolveremos um sistema web utilizando o módulo nativo

HTTP, mostrando suas vantagens e desvantagens. Também apresentarei soluções de

módulos estruturados para desenvolver aplicações complexas de forma modular e

escalável.

Toda aplicação web necessita de um servidor para disponibilizar todos os seus

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке