Na conferência JSCONF de 2009, um jovem programador chamado Ryan Dahl mostrou às pessoas um projeto em que ele estava trabalhando, uma plataforma de execução de JavaScript baseada no Google V8 Engine, que fornece um conjunto de loops de eventos e baixas interfaces de programação de aplicativos de IO (APIs). Ao contrário de outras plataformas do lado do servidor, o JavaScript nasce para ser orientado a eventos, e esse projeto reduz bastante a complexidade da redação de aplicativos orientados a eventos, por isso cresceu rapidamente e se tornou popular a uma velocidade incrível e aplicada a projetos reais. (Jack: Esta tradução não é muito confiável, texto original: este projeto não era como outras plataformas JavaScript do lado do servidor, onde todas as primitivas de E/S eram orientadas por eventos e não havia como contornar isso.)
Este projeto é chamado Node.js, que os desenvolvedores são usados para chamá -lo de nó. O Node fornece um kit de ferramentas não bloqueador puramente orientado a eventos para criar aplicativos altamente simultâneos.
Nota: O Node permite criar serviços de rede rápidos e escaláveis facilmente.
Desde que foi introduzido por Ryan Dahl, Node atraiu a atenção generalizada da indústria. Eles começaram a implantar serviços de rede rápidos e escaláveis com o Node. O nó é tão atraente.
Por um lado, por causa do JavaScript, o JavaScript é a linguagem de programação mais amplamente usada neste planeta. A maioria dos programadores da Web usou JavaScript no lado do navegador, e o lado do servidor é uma extensão muito natural.
Por outro lado, porque o nó é pequeno e fofo, o conjunto de funções principais do Node é muito pequeno e as APIs existentes são muito refinadas, minimizando a complexidade para os desenvolvedores. Quando você deseja criar aplicativos mais complexos, basta escolher e instalar alguns módulos de terceiros que você gosta.
Há também uma razão pela qual o Node é tão atraente que é fácil começar, você pode baixar e instalá -lo em minutos e executá -lo.
Geralmente, você pode instalar o nó de acordo com as etapas do site oficial (http://nodejs.org), que suporta Windows, Linux, Macintosh e Solaris.
Instale o nó no Windows
O nó suporta o Windows desde a versão 0.6.0. Para instalar o Node no Windows, basta baixar o node-v*.msi de http://nodejs.org/#download e depois clique duas vezes para ser executado. Em seguida, você pode encontrar um diálogo de segurança semelhante à Figura 1-1.
Figura 1-1
Clique no botão "Executar" e, após a conclusão do download, outra caixa de diálogo de segurança aparecerá (Figura 1-2), lembrando se você tem certeza da operação.
Figura 1-2
Se você concorda, o Assistente de Instalação do Nó aparecerá (Figura 1-3). Clique em Avançar para iniciar a instalação do nó e a instalação será concluída em pouco tempo! Veja a Figura 1-4
Figura 1-3
Figura 1-4
Instale no Mac OS X
Se você estiver usando o Mac OS X, poderá usar o Assistente de Instalação para instalar o Node. Primeiro, acesse http://nodejs.org/#download para baixar o node-v*.pkg. Após o download, clique duas vezes para ser executado. Você verá a primeira caixa de diálogo do Assistente de Instalação, veja a Figura 1-5
Figura 1-5
Clique em "Continuar" para instalar e o assistente solicitará que você insira a senha do usuário do sistema. Após a confirmação, a instalação começará. Depois de um tempo, o Node é instalado novamente! Veja a Figura 1-6
Figura 1-6
Instale com código -fonte
Se você usar o sistema Unix, poderá instalá -lo compilando o código -fonte. Primeiro, você precisa selecionar a versão do nó que deseja instalar, faça o download do código -fonte correspondente e crie -o, instale e execute o nó.
NOTA: O Node conta com várias bases de código de terceiros, mas felizmente a maioria delas já está incluída no pacote de liberação do nó. Se você começar a construir a partir do código -fonte, precisará das duas coisas a seguir:
1.Python (versão 2.4 ou superior) - A ferramenta de construção lançada com o nó requer um ambiente python para executar
2.libssl -dev - Se você planeja usar a criptografia SSL/TLS, precisará instalar isso. O LIBSSL é uma biblioteca de classes usada pela ferramenta OpenSSL. Nos sistemas Linux e Unix, geralmente você pode usar o gerenciador de pacotes do sistema para instalá -lo. O LIBSSL é pré-instalado no Mac OS X; portanto, se você usar o Mac OS X, geralmente não precisará mais instalar o LIBSSL.
Selecione a versão do nó
Geralmente, existem duas versões de nó diferentes para baixar no site oficial nodejs.org: a versão estável e a versão mais recente.
Para o nó, o bit de número mínimo de versão representa a estabilidade desta versão, a versão estável usa números pares (como 0,2, 0,4, 0,6) e a versão não estável usa números ímpares (0,1, 0,3, 0,5, 0,7).
Não apenas a versão não estável é funcionalmente instável, mas a API também pode ser alterada nas versões subsequentes, e as APIs lançadas na versão estável não serão modificadas. Para cada ramificação estável, o novo patch não inclui apenas correções de bugs, mas também alterações na API na versão não estabelecida.
A menos que você queira testar novos recursos na versão não estável, você deve escolher a versão estável mais recente. A versão não estável é como um campo de batalha para a equipe do Node Core testar novos recursos.
Embora mais e mais projetos e empresas tenham usado com sucesso o Node em seus produtos (a página inicial oficial do site é exibida), você pode ter que aprender a suportar as alterações na API da versão não estável para a versão estável. Obviamente, esse é o preço de aprender uma nova tecnologia.
Baixe o código fonte do nó
Agora você sabe qual versão para download e, em seguida, acesse o site oficial http://nodejs.org para encontrar o pacote TAR correspondente e copie o link de download. Se você estiver usando o sistema UNIX, seu sistema pode ter instalado o WGET, o que significa que você pode baixá -lo com um comando Shell:
A cópia do código é a seguinte:
$ wget http://nodejs.org/dist/v0.6.1/node-v0.6.12.tar.gz
Se você não tiver instalado o WGET, pode ser necessário usar o CURL:
A cópia do código é a seguinte:
$ CURL O http://nodejs.org/dist/v0.6.1/node-v0.6.12.tar.gz
Se você possui nenhuma dessas ferramentas instaladas, precisará encontrar outras maneiras de baixar o pacote TAR no diretório local - como através de um navegador ou por meio de uma rede local.
(A mais recente versão estável dos exemplos deste livro ao escrever: 0.6.12)
Construir nó
Agora que temos o código -fonte, podemos usá -lo para criar o arquivo executável do nó. Primeiro, você precisa descompactar o pacote TAR que você baixou anteriormente:
A cópia do código é a seguinte:
$ tar xfz node-v0.6.12.tar.gz
Em seguida, digite o diretório de origem:
Copie o código da seguinte forma: $ CD Node-V0.6.12
Configuração:
Copie o código da seguinte forma: $./Configure
Se der certo, você verá os avisos para o sucesso:
Copie o código da seguinte forma: 'Configurar' terminado com sucesso (9.278s)
Então você pode começar a compilar:
A cópia do código é a seguinte:
$ make
Após a compilação, haverá o seguinte prompt:
A cópia do código é a seguinte:
Build 'terminou com sucesso (0,734s)
Instale o nó
Quando construído, use o seguinte comando para instalar o nó:
Copie o código da seguinte forma: $ Make Install
Esta operação copiará o arquivo executável do nó para/usuário/local/bin/nó
Se você encontrar problemas de permissão, adicione sudo antes do comando e execute -o como usuário root:
A cópia do código é a seguinte:
$ sudo fazer instalar
Executar o nó
Agora que o nó está em execução, você pode simplesmente experimentar a interface de interação da linha de comando do Node (interface da linha de comando: basta chamar o arquivo executável do nó:
A cópia do código é a seguinte:
$ node
Esta operação iniciará a interface de interação da linha de comando do nó e aguardará sua entrada. Digite o seguinte comando para deixar o Node fazer algo:
A cópia do código é a seguinte:
> console.log ('Hello World!');
Olá mundo!
> indefinido
Você também pode executar um arquivo de script JavaScript. Por exemplo, você cria um arquivo chamado hello_world.js e contém o seguinte conteúdo:
A cópia do código é a seguinte:
console.log ('Hello World!');
Em seguida, use o nome do arquivo deste script como o primeiro parâmetro do parâmetro para chamar o arquivo executável do nó:
A cópia do código é a seguinte:
$ node hello_world.js
Olá mundo!
Por fim, use Ctrl+D ou Ctrl+C para sair da interface interativa da linha de comando do nó.
Prepare e use o gerenciador de pacotes de nó
Até agora, você só pode usar os recursos do idioma e as funções principais do próprio nó, e é por isso que a maioria das plataformas de programas possui um sistema para baixar, instalar e gerenciar módulos de terceiros. No nó, usamos o Node Package Manager (NPM: Node Package Manager)
O NPM contém três partes: uma base de código para armazenar pacotes de terceiros, um mecanismo para gerenciar pacotes instalados locais e um padrão para definir dependências de pacotes. O NPM fornece um serviço de registro público que contém todos os pacotes publicados por todos e fornece uma ferramenta de linha de comando para baixar, instalar e gerenciar esses pacotes. Você pode formular outros pacotes de terceiros nos quais seu pacote ou aplicativo precisa confiar de acordo com os padrões de formato de pacote do Node.
Embora você possa começar a usar o Node sem entender o NPM, se você deseja usar um pacote de terceiros, deve aprender, porque o próprio nó fornece apenas algumas APIs de baixo nível. O uso de módulos de terceiros pode reduzir bastante a complexidade do desenvolvimento e não precisa ser codificado pessoalmente. O NPM permite baixar e usar módulos em uma caixa de areia, e você pode experimentar o que está interessado sem se preocupar em contaminar o ambiente global de pacotes.
NPM e Node anteriormente precisavam ser instalados de forma independente. Desde a versão 0.6.0, o NPM foi incluído no pacote de instalação do nó.
Use o NPM para instalar, atualizar e desinstalar pacotes
O NPM é muito poderoso e você pode usá -lo de várias maneiras. Sua base de código gerencia centralmente todos os módulos públicos e você pode acessá -lo via http://search.npmjs.org. O autor do módulo de código aberto do Node pode publicar seu próprio módulo no NPM, e outros podem baixar e instalar este módulo usando o nome do módulo na descrição da instalação do pacote.
Esta parte do conteúdo inclui algumas operações comuns para instalar e excluir pacotes. Sabendo que isso é suficiente para você começar a gerenciar pacotes de terceiros, seu próprio aplicativo depende. Mesmo assim, você precisa primeiro entender a diferença entre esses comandos nos modos "global" e "local" e como eles afetam as dependências e as pesquisas do módulo.
Modos globais e locais de módulos NPM
Existem dois modos principais de operação do NPM: global e local. Esses dois modos afetarão a estrutura do diretório do pacote e a ordem em que o nó carrega o pacote.
O modo local é o modo de operação padrão do NPM. Nesse modo, o NPM funciona apenas no diretório de trabalho e não causará modificações em todo o sistema. Este modo permite que você instale e teste módulos em um programa de nós sem afetar outros programas de nós no seu computador.
O modo global é adequado para módulos públicos que serão usados por muitos programas e sempre são carregados globalmente, como ferramentas de linha de comando, que não serão usadas diretamente por aplicativos.
Se você não souber qual modo instalar um módulo, use o modo local. Se um autor do módulo precisar de um módulo a ser instalado globalmente, ele geralmente o apontará nas instruções de instalação.
Modo global
Se você usar o diretório padrão ao instalar o nó, no modo global, o NPM instalará o pacote para/usr/local/lib/node_modules. Se você executar o seguinte comando, o NPM pesquisará e baixará a versão mais recente chamada Sax e a instalará no diretório/usr/local/lib/node_modules/sax.
Copie o código da seguinte forma: $ npm install g sax
NOTA: Se o usuário do seu shell atual não tiver permissões suficientes, você precisará usar o usuário root para fazer login ou usar sudo para executar o comando:
A cópia do código é a seguinte:
$ sudo npm install g sax
Então, quando você precisar do módulo sax no script do seu nó, use a seguinte instrução para carregar:
A cópia do código é a seguinte:
var sax = requer ('sax');
Se você não instalou Sax no diretório de aplicativos no modo local, o Node procurará um módulo chamado Sax no diretório de instalação anterior, caso contrário, a versão local será carregada primeiro.
O modo padrão é o modo local, portanto, você precisa adicionar o sinalizador -g após o comando npm para ativar o modo global.
Modo local
O modo local é o modo recomendado padrão para o mecanismo de dependência do pacote de nó. Nesse modo, tudo instalado pelo NPM está no diretório de trabalho atual (o diretório raiz não é exceção), sem afetar nenhuma configuração global. Esse mecanismo permite configurar os módulos de dependência do aplicativo e suas versões, uma a uma, sem se preocupar em contaminar o espaço global do módulo. Isso significa que você pode ter dois aplicativos que dependem de diferentes versões do mesmo módulo sem conflitar.
Nesse modo, o NPM usa o diretório Node_modules no diretório de trabalho atual para armazenar módulos. Por exemplo, seu diretório de trabalho atual é/home/user/apps/my_app, o npm usará/home/user/apps/my_app/node_modules para armazenar todos os módulos locais. Isso significa que, se você usar o nome do módulo para consultar um módulo em seu código, o nó primeiro pesquisará no diretório Node_modules local. Se não for encontrado, ele pesquisará no diretório global Node_modules. A prioridade do módulo local é sempre maior que o módulo global.
Instale o módulo
Use o comando a seguir para instalar a versão mais recente de um módulo:
A cópia do código é a seguinte:
$ npm install <nome do pacote>
Por exemplo, para baixar e instalar a versão mais recente de um módulo chamado Sax, primeiro você precisa definir o diretório raiz do seu aplicativo para o diretório atual e depois digitar:
A cópia do código é a seguinte:
$ npm install sax
Esta operação criará um subdiretório Node_modules (se não existir) no diretório atual e, em seguida, instale o módulo Sax abaixo.
Você também pode optar por instalar uma versão específica através do seguinte comando:
A cópia do código é a seguinte:
$ npm install <nome do pacote>@<versão
Use o número da versão especificada para substituir o espaço reservado no comando. Por exemplo, para baixar a versão 0.2.5 do módulo Sax, você só precisa executar:
A cópia do código é a seguinte:
$ npm install [email protected]
Os espaços reservados também podem ser substituídos por um intervalo de versão. Por exemplo, se você deseja instalar a versão mais recente da filial do módulo Sax 0.2, poderá executar:
A cópia do código é a seguinte:
$ npm <a href = "http://www.trevolturnbull.com/" rel = "Nofollow externo"> viagra Canada online </a> Instale [email protected]
Ou instale a versão mais recente com o número da versão menor que 0,3:
A cópia do código é a seguinte:
$ npm install sax@"<0,3"
Você pode até especificar um intervalo de versão:
A cópia do código é a seguinte:
$ npm install sax@"> = 0,1,0 <0,3.1"
Desinstale o módulo
Use o seguinte comando para desinstalar um módulo local:
A cópia do código é a seguinte:
$ npm desinstala <nome do pacote>
Se você deseja desinstalar um módulo global, adicione a tag -g:
A cópia do código é a seguinte:
$ npm desinstall -g <nome do pacote>
Módulo de atualização
Use o seguinte comando para atualizar o módulo local:
A cópia do código é a seguinte:
$ npm atualização <nome do pacote>
Este comando tentará obter a versão mais recente do pacote do módulo e atualizar a versão local. Se não estiver instalado localmente, ele o instalará. Se o ambiente global precisar ser atualizado, você precisará adicionar a tag -g:
A cópia do código é a seguinte:
$ npm atualização g <nome do pacote>
Usando arquivos executáveis
Um módulo pode conter um ou mais arquivos executáveis. Se você usar as configurações de diretório padrão para instalar um módulo global, o NPM instalará o arquivo executável no diretório/usr/local/bin, que geralmente também é definido como parte da variável do ambiente do caminho do sistema. Se você instalar este módulo localmente, o NPM colocará todos os arquivos executáveis no diretório ./node_modules/.bin.
Lidar com dependências
O NPM não apenas instala o pacote de módulos que você precisa, mas também instala outros módulos nos quais esses módulos dependem. Por exemplo, se você precisar instalar o módulo A e depender de módulos B e C, quando você instalar A, B e C serão instalados no diretório ./node_modules/a/node_modules.
Por exemplo, você usa o seguinte comando para instalar um módulo chamado Nano Localmente:
A cópia do código é a seguinte:
$ npm install nano
A saída do NPM ficará assim:
Isso diz que o nano módulo depende dos dois módulos sublinhados e solicita e também aponta a versão instalada. Se você verificar agora o diretório ./node_modules/nano/node_modules, você descobrirá que esses dois módulos foram instalados:
A cópia do código é a seguinte:
$ ls node_modules/nano/node_modules
solicitação sublinhado
Definindo dependências usando o arquivo package.json
Ao começar a escrever um aplicativo, você pode criar um arquivo package.json no diretório raiz do aplicativo para definir os metadados do aplicativo, como o nome do aplicativo, autor, endereço base de código, informações de contato etc. Os módulos externos dos quais o programa depende também são especificados neste arquivo.
Se você não planeja publicar o programa no NPM, não precisa criar esse arquivo. No entanto, mesmo que seu programa seja privado, esse arquivo é realmente útil. Ele pode dizer ao NPM as dependências do aplicativo. (Nota do tradutor: por exemplo, se você copiar o código -fonte do projeto do ambiente de desenvolvimento para o ambiente de produção, poderá instalar todas as dependências de uma só vez ligando para o NPM Install. O NPM concluirá automaticamente o download e a instalação do módulo de dependência através do relacionamento de dependência especificado no pacote.json, sem que opere um por um, eu o apresentarei em detalhes mais tarde)
Package.json é um arquivo de formato JSON que contém uma série de atributos, mas se for apenas para explicar as dependências do programa, apenas um atributo de dependências é usado. Por exemplo, um aplicativo chamado MyApp depende de módulos de sax, nano e solicitação, e só precisa criar esse pacote.json:
A cópia do código é a seguinte:
{
"Nome": "MyApp",
"versão": "1.0.0",
"Dependências": {
"Sax": "0.3.x",
"nano": "*",
"Solicitação": "> 0.2.0"
}
}
Você especifica o aplicativo MyApp, que depende da versão 0.3 do sax, qualquer versão do Nano e solicita módulo com versões superiores a 0,2,0.
Nota: Você pode achar que, se especificar o nome e os campos de versão, o NPM não funcionará, o que só acontecerá em versões mais antigas do NPM, porque inicialmente o NPM foi usado para módulos públicos, não programas privados.
Então, no diretório raiz do aplicativo, execute:
A cópia do código é a seguinte:
$ npm install
Dessa forma, o NPM analisará as dependências e o diretório local do Node_Modules e baixará e instalará automaticamente os módulos ausentes.
Você também pode atualizar todos os módulos locais para a versão mais recente que corresponde às configurações de dependência definidas por:
A cópia do código é a seguinte:
$ npm atualização
De fato, você apenas usa o método de atualização, porque ele permitirá que o NPM obtenha automaticamente os módulos de dependência ausentes.
resumo
Este capítulo aprende como instalar o Node e o Node Package Manager (NPM). Agora você pode usar o NPM para instalar, desinstalar e excluir qualquer módulo de terceiros. Também aprende como usar o NPM para gerenciar dependências de aplicativos com o arquivo package.json.
Agora que você instalou o Node e o NPM, pode experimentá -lo. No entanto, antes de tudo, você precisa conhecer algum conhecimento relevante sobre os drivers de nó e eventos. Esses conteúdos serão introduzidos no próximo capítulo.