acessar com um editor de texto qualquer e em modo super user (sudo) o ar-
quivo .bash_profile ou .bashrc e adicionar o seguinte comando: export
NODE_ENV=development. No Windows 7, o processo é um pouco diferente.
5
1.5. Instalação e configuração
Casa do Código
Figura 1.4: Configurando a variável NODE_ENV no Windows 7.
Clique com botão direito no ícone Meu Computador e selecione a opção Pro-
priedades, no lado esquerdo da janela, clique no link Configurações avançadas dosistema. Na janela seguinte, acesse a aba Avançado e clique no botão Variáveis deAmbiente. . . , agora no campo Variáveis do sistema clique no botão Novo. . . , em nome da variável digite NODE_ENV e em valor da variável digite: development.
Após finalizar essa tarefa reinicie seu computador para carregar essa variável no sis-
tema operacional.
Rodando o Node: Para testarmos o ambiente, executaremos o nosso primeiro
programa Hello World. Execute o comando: node para acessarmos o REPL (Read-
Eval-Print-Loop) que permite executar código Javascript diretamente no terminal ,
digite console.log("Hello World"); e tecle ENTER para executá-lo na hora.
6
Casa do Código
Capítulo 1. Bem-vindo ao mundo Node.js
Figura 1.5: Hello World via REPL do Node.js
1.6
Gerenciando módulos com NPM
Assim como o Gems do Ruby ou o Maven do Java, o Node.js também possui o seu
próprio gerenciador de pacotes, ele se chama NPM (Node Package Manager). Ele
se tornou tão popular pela comunidade, que foi a partir da versão 0.6.0 do Node.js que ele se integrou no instalador do Node.js, tornando-se o gerenciador default. Isto
simplificou a vida dos desenvolvedores na época, pois fez com que diversos projetos
se convergissem para esta plataforma. Não listarei todos, mas apenas os comandos
principais para que você tenha noções de como gerenciar módulos nele:
npm install nome_do_módulo: instala um módulo no projeto.
npm install -g nome_do_módulo: instala um módulo global.
npm install nome_do_módulo --save: instala o módulo no projeto,
atualizando o package.json na lista de dependências.
npm list: lista todos os módulos do projeto.
npm list -g: lista todos os módulos globais.
npm remove nome_do_módulo: desinstala um módulo do projeto.
7
1.7. Entendendo o package.json
Casa do Código
npm remove -g nome_do_módulo: desinstala um módulo global.
npm update nome_do_módulo: atualiza a versão do módulo.
npm update -g nome_do_módulo: atualiza a versão do módulo global.
npm -v: exibe a versão atual do npm.
npm adduser nome_do_usuário: cria uma conta no npm, através do site
(https://npmjs.org) .
npm whoami: exibe detalhes do seu perfil público npm (é necessário criar
uma conta antes).
npm publish: publica um módulo no site do npm, é necessário ter uma
conta antes.
1.7
Entendendo o package.json
Todo projeto Node.js é chamado de módulo, mas o que é um módulo? No decorrer
da leitura, perceba que falarei muito sobre o termo módulo, biblioteca e framework,
e na prática eles possuem o mesmo significado. O termo módulo surgiu do conceito
de que a arquitetura do Node.js é modular. E todo módulo é acompanhado de um
arquivo descritor, conhecido pelo nome de package.json.
Este arquivo é essencial para um projeto Node.js. Um package.json mal es-
crito pode causar bugs ou impedir o funcionamento correto do seu módulo, pois ele
possui alguns atributos chaves que são compreendidos pelo Node.js e NPM.
No código abaixo apresentarei um
package.json que contém os principais
atributos para descrever um módulo:
{
"name": "meu-primero-node-app",
"description": "Meu primeiro app em Node.js",
"author": "Caio R. Pereira <caio@email.com>",
"version": "1.2.3",
"private": true,
"dependencies": {
"modulo-1": "1.0.0",
"modulo-2": "~1.0.0",
"modulo-3": ">=1.0.0"
8
Casa do Código
Capítulo 1. Bem-vindo ao mundo Node.js
},
"devDependencies": {
"modulo-4": "*"
}
}
Com esses atributos, você já descreve o mínimo possível o que será
sua aplicação.
O atributo
name é o principal, com ele você descreve
o nome do projeto, nome pelo qual seu módulo será chamado via função
require('meu-primeiro-node-app'). Em description descrevemos o
que será este módulo. Ele deve ser escrito de forma curta e clara explicando um
resumo do módulo. O author é um atributo para informar o nome e email do
autor, utilize o formato: Nome <email> para que sites como (https://npmjs.org)
reconheça corretamente esses dados. Outro atributo principal é o version, é com
ele que definimos a versão atual do módulo, é extremamente recomendado que te-
nha este atributo, senão será impossível instalar o módulo via comando npm. O
atributo private é um booleano, e determina se o projeto terá código aberto ou
privado para download no (https://npmjs.org) .
Os módulos no Node.js trabalham com 3 níveis de versionamento. Por exem-
plo, a versão 1.2.3 esta dividida nos níveis: Major (1), Minor (2) e Patch (3). Repare que no campo dependencies foram incluídos 4 módulos, cada módulo utilizou
uma forma diferente de definir a versão que será adicionada no projeto. O primeiro,