Um guia para iniciantes do Node.js Parte 1





Bom dia amigos



Eu apresento-lhe a tradução deste na guia Node.js .



Outras partes:



Parte 1

Parte 2

Parte 3

Parte 4



Introdução ao Node.js



O Node.js é um tempo de execução JavaScript aberto e de plataforma cruzada. Esta é uma ótima solução para quase qualquer projeto.



O Node.js executa o mecanismo JavaScript V8, o núcleo do Google Chrome, fora do navegador. Isso torna o Node.js muito eficiente.



Os aplicativos Node.js são executados como um único processo, sem criar um novo encadeamento para cada solicitação. O Node.js fornece um conjunto de primitivas de E / S assíncronas na biblioteca padrão que protegem o JavaScript do bloqueio, e normalmente as bibliotecas do Node.js são escritas usando paradigmas não-bloqueadores, tornando o comportamento do bloqueio a exceção e não a regra.



Quando o Node.js executa uma operação de E / S, como ler (dados) da rede, acessar um banco de dados ou sistema de arquivos, em vez de bloquear o fluxo e aguardar a conclusão dos ciclos da CPU, o Node.js continuará executando a operação após receber uma resposta.



Isso permite que o Node.js manipule milhares de solicitações simultaneamente por meio de um único servidor, sem a necessidade de um sistema de consistência de fluxo que possa ser uma fonte de erros graves.



Uma vantagem significativa do Node.js é que milhões de desenvolvedores que escrevem JavaScript para o navegador agora podem escrever código do servidor, além do código do cliente, sem precisar aprender uma linguagem (programação) completamente diferente.



No Node.js, os novos padrões do ECMAScript podem ser usados ​​sem problemas, você não precisa esperar até que todos os usuários atualizem seus navegadores - você decide qual versão do ECMAScript usar alterando a versão do Node.js, também é possível adicionar recursos experimentais executando o Node.js com sinalizadores (correspondentes).



Um grande número de bibliotecas


Com sua estrutura simples, o npm está impulsionando o rápido crescimento do ecossistema Node.js., com mais de 1.000.000 de pacotes de código aberto atualmente registrados no npm que você pode usar gratuitamente.



Exemplo de aplicação Node.js.


O caso de uso mais comum do Node.js é criar um servidor da web:



const http = require('http')

const hostname = '127.0.0.1'
const port = process.env.PORT 

const server = http.createServer((req, res) => {
    res.statusCode = 200
    res.setHeader('Content-Type', 'text/plain')
    res.end('Hello World!\n')
})

server.listen(port, hostname, () => {
    console.log(`Server running at http://${hostname}:${port}/`)
})


Primeiro de tudo, incluímos o módulo http .



O Node.js possui uma fantástica biblioteca padrão que inclui suporte de rede de alto nível.



O método createServer() httpcria um novo servidor HTTP e o retorna.



O servidor está configurado para escutar em uma porta e host específicos. Quando o servidor está pronto, a função de retorno de chamada é iniciada, informando que o servidor está em execução.



Quando um novo pedido de chamada evento pedido , contendo dois objetos: o pedido (objeto http.IncomingMessage (mensagem recebida)) ea resposta (o objeto http.ServerResponse (resposta do servidor)).



Esses objetos são necessários para processar a chamada HTTP.



O primeiro objeto contém os detalhes da solicitação. Não é usado em nosso exemplo, mas você pode acessar os cabeçalhos da solicitação e seus dados.



O segundo objeto é usado para fornecer dados ao solicitante.



Nesse caso, através



res.statusCode = 200


definimos a propriedade statusCode como 200 como um indicador do sucesso da solicitação.



Definimos o cabeçalho do tipo de conteúdo (conteúdo ou tipo de conteúdo)



res.setHeader('Content-Type', 'text/plain')


e feche a resposta adicionando conteúdo como argumento para end():



res.end('Hello World\n')


Estruturas e ferramentas do Node.js.


O Node.js é uma plataforma de baixo nível. Milhares de bibliotecas diferentes foram criadas para atender às necessidades dos desenvolvedores.



Com o tempo, muitos deles se tornaram muito populares. Aqui está uma lista de alguns deles:





Node.js



Acredite ou não, o Node.js tem apenas 10 anos.



Em comparação, o JavaScript existe há 24 anos e a web há 30.



10 anos é pouco para a tecnologia, mas às vezes parece que o Node.js sempre existiu.



Conheci o Node.js quando apenas dois anos se passaram desde o seu início, mas mesmo assim, apesar das informações limitadas, parecia que um grande futuro o aguardava.



Nesta seção, veremos o panorama geral do histórico do Node.js.



Um pouco de história


JavaScript é uma linguagem de programação inventada pelo Netscape como uma ferramenta de script para manipular páginas da Web no navegador Netscape Navigator .



Parte do modelo de negócios da Netscape vendia servidores da Web que incluíam o Netscape LiveWire, capaz de criar páginas dinâmicas usando JavaScript do lado do servidor. Infelizmente, o Netscape LiveWire falhou e o JavaScript do servidor não era popular até o Node.js.



Um dos principais fatores na popularidade do Node.js é o tempo (de sua aparência). O JavaScript havia sido reconhecido como uma linguagem séria (de programação) alguns anos antes, graças a aplicativos "Web 2.0" (como Flickr, Gmail e outros) que mostravam ao mundo como seria a web moderna.



Os mecanismos JavaScript também melhoraram significativamente à medida que os navegadores se esforçam para melhorar o desempenho em benefício dos usuários. As equipes de desenvolvedores dos principais navegadores trabalharam duro para implementar o melhor suporte para JavaScript e sua execução mais rápida. O mecanismo que o Node.js usa, o V8 (também conhecido como Chrome V8 - o mecanismo JavaScript de código aberto do projeto Chromium) saiu vitorioso dessa competição.



O Node.js surgiu no momento certo e no lugar certo. Felizmente, esse não é o único motivo de sua popularidade. O projeto continha um grande número de idéias e abordagens inovadoras para o desenvolvimento de JavaScript no servidor, que muitos desenvolvedores gostaram.



2009


  • Node.js apareceu
  • Npm apareceu


2010


  • Expressar
  • Socket.io


2011


  • npm versão 1.0
  • Node.js: LinkedIn, Uber .
  • hapi


2012


  • Node.js


2013




2014


  • : Node.js io.js ( — git) ES6


2015




2016




2017


  • npm
  • Node.js 8
  • HTTP/2
  • V8 Node.js , Node.js JS Chrome
  • 3 npm


2018


  • Node.js 10
  • Suporte experimental para módulos ES com a extensão .mjs


Como instalo o Node.js?



O Node.js pode ser instalado de várias maneiras.



Distribuições para as principais plataformas estão disponíveis no site oficial .



Uma maneira muito conveniente de instalar o Node.js é usar um gerenciador de pacotes. Cada sistema operacional tem o seu próprio.



No macOS, esse é o Homebrew , que facilita a instalação do Node.js usando a linha de comando:



brew install node


A lista de gerenciadores de pacotes para Linux, Windows e outros sistemas está aqui .



nvmÉ uma maneira popular de executar o Node.js. Ele permite alternar facilmente entre as versões do Node.js., instalar novas versões para teste e desfazer as instalações, caso algo dê errado.



Também é muito útil quando você precisa testar o código em versões mais antigas do Node.js.



Para mais informações sobre nvmsiga este link .



Meu conselho é usar o instalador oficial se você está apenas começando e não usou o Homebrew antes.



Após instalar o Node.js, você pode acessar o executável nodena linha de comando.



Você precisa saber JavaScript para trabalhar com o Node.js?



Sendo iniciante, é difícil determinar o seu nível de programação.



Também é difícil determinar onde o JavaScript termina e o Node.js inicia e vice-versa.



Pessoalmente, sugiro que você compreenda os seguintes conceitos básicos de JavaScript antes de mergulhar no Node.js.



  • Sintaxe ou estrutura lexical
  • Expressões (essencialmente a mesma sintaxe)
  • Tipos de dados)
  • Variáveis
  • Funções
  • Esta palavra-chave
  • Funções de seta
  • rotações
  • Área de visibilidade
  • Matrizes
  • Literais de modelo ou sequência
  • Um ponto e vírgula (provavelmente casos de seu uso obrigatório, por exemplo, ao trabalhar com IIFE)
  • Regime estrito
  • ECMAScript 6, 2016, 2017


Dominar esses conceitos é o começo do caminho de um desenvolvedor profissional de pilha cheia.



Os seguintes conceitos também são fundamentais para entender a programação assíncrona, que é uma parte fundamental do Node.js.



  • Programação assíncrona e retornos de chamada (retornos de chamada)
  • Temporizadores (contadores)
  • Promessas (promessas)
  • Assíncrono / aguardar
  • Encerramentos
  • Loop de eventos (pilha de chamadas)


Diferença entre o Node.js e o navegador



JavaScript pode ser usado no navegador e no Node.js.



No entanto, a criação de aplicativos de navegador é muito diferente da criação de aplicativos Node.js.



Apesar do JavaScript ser usado nos dois casos, existem algumas diferenças importantes que determinam as especificidades do desenvolvimento.



Do ponto de vista do front-end JavaScript (desenvolvedor front-end - a parte cliente do aplicativo), o desenvolvimento de aplicativos no Node.js tem uma vantagem significativa, expressa no fato de que em todo lugar, no cliente e no servidor, uma linguagem de programação é usada - JavaScript.



Esta é uma grande oportunidade para se tornar uma pilha completa: todos sabemos como é difícil aprender profundamente, profundamente, uma nova linguagem de programação e, nesse caso, não existe essa necessidade.



A única coisa que precisa ser estudada é o ecossistema.



No navegador, na maioria das vezes, temos que lidar com o DOM e outras APIs da web, como cookies. Claro que eles não existem no Node.js. O Node.js não possui janela, documento e outros objetos específicos do navegador.



Por outro lado, os navegadores não possuem as excelentes APIs que o Node.js fornece por meio de módulos, como acesso ao sistema de arquivos.



Outra grande diferença é que no Node.js, você controla o ambiente de execução de código. Se você não estiver desenvolvendo um aplicativo aberto que possa ser implantado em qualquer lugar, você saberá qual versão do Node.js é usada para executar o aplicativo. Isso é muito conveniente, diferente do tempo de execução do navegador, porque os usuários decidem qual navegador usar.



Isso significa que você pode escrever o código JavaScript suportado pela sua versão do Node.js.



Como o JavaScript está evoluindo muito dinamicamente, os navegadores nem sempre têm tempo para implementar rapidamente novos recursos de idioma, e os usuários nem sempre atualizam em tempo hábil; portanto, é necessário manter o JavaScript antigo na Web.



Você pode usar o Babel para traduzir o código no ES5; no Node.js, isso não é necessário.



Outra diferença é que o Node.js usa o sistema modular CommonJS e os navegadores suportam módulos ES.



Na prática, isso significa que no Node.js usamos require()e no navegador import.



Obrigado pela atenção, amigos. Se você encontrar erros e erros de digitação, não hesite em escrever no PM, serei grato.



Continua…



All Articles