Nó.JS (Node.JS)

Node.js é um tempo de execução JavaScript de plataforma cruzada de código aberto que é executado em servidores. Desde o seu lançamento em 2009, esta plataforma tornou-se extremamente popular e desempenha um papel muito importante no campo do desenvolvimento web nos dias de hoje.
Para o artigo completo em Node.JS ...

Mostrar filtro
Filtros de hospedagem
A2 Themes & Host Me Filter

Sistema operacional

Espaço em disco

Memoria RAM

Tipo de disco

Núcleos de CPU

Ordenar

Piloto de confiança Dream Host
Pontuação - 9.7
Dream Host Logo
Dream Host

Dream Host

DreamObjects 40 GB
$0.95 /Por mês

Avaliações 3778

29 Cupons

Locais do servidor


Dream Host Servers in AshburnEstados Unidos
Comparar
Piloto de confiança ICDSoft
Pontuação - 10
ICDSoft Logo
ICDSoft

ICDSoft

Economy - Europe
$8 /Por mês

Avaliações 233


Locais do servidor


ICDSoft Servers in SofiaBulgária ICDSoft Servers in BostonEstados Unidos ICDSoft Servers in Hong KongHong Kong
Comparar
Piloto de confiança ICDSoft
Pontuação - 10
ICDSoft Logo
ICDSoft

ICDSoft

Economy - USA
$8 /Por mês

Avaliações 233


Locais do servidor


ICDSoft Servers in SofiaBulgária ICDSoft Servers in BostonEstados Unidos ICDSoft Servers in Hong KongHong Kong
Comparar
Pontuação - 9
A2hosting Logo
A2hosting

A2hosting

Lite
$3.92 /Por mês

50 Cupons

Locais do servidor


A2hosting Servers in AmsterdamPaíses Baixos A2hosting Servers in MichiganEstados Unidos A2hosting Servers in SingaporeCingapura
Comparar
Piloto de confiança Keliweb
Pontuação - 9.8
Keliweb Logo
Keliweb

Keliweb

Prime
$5.51 /Por mês

Avaliações 453


Locais do servidor


Keliweb Servers in MilanoItália
Comparar
Piloto de confiança JustHostMe
Pontuação - 9.4
JustHostMe Logo
JustHostMe

JustHostMe

Starter
$3.11 /Por mês

Avaliações 72


Locais do servidor


JustHostMe Servers in United KingdomReino Unido
Comparar
Piloto de confiança Dream VPS
Pontuação - 8.6
Dream VPS Logo
Dream VPS

Dream VPS

STARTER
$3.75 /Por mês

Avaliações 7


Locais do servidor


Dream VPS Servers in Hong KongHong Kong Dream VPS Servers in Santa Clara Dream VPS Servers in New YorkEstados Unidos Dream VPS Servers in LondonReino Unido Dream VPS Servers in AmsterdamPaíses Baixos Dream VPS Servers in FrankfurtAlemanha Dream VPS Servers in IsraelIsrael
Comparar
Piloto de confiança Reseller Cube
Pontuação - 8
Reseller Cube Logo
Reseller Cube

Reseller Cube

Basic USA
$5 /Por mês

Avaliações 4


Locais do servidor


Reseller Cube Servers in RaleighEstados Unidos
Comparar
Piloto de confiança Univa Host
Pontuação - 8
Univa Host Logo
Univa Host

Univa Host

E-ECONOMY
$2.99 /Por mês

Avaliações 3


Locais do servidor


Univa Host Servers in GermanyAlemanha Univa Host Servers in United StatesEstados Unidos
Comparar
Piloto de confiança OperaVPS
Pontuação - 7.8
OperaVPS Logo
OperaVPS

OperaVPS

Linux 512MB
$7.99 /Por mês

Avaliações 3


Locais do servidor


OperaVPS Servers in United KingdomReino Unido OperaVPS Servers in AustriaÁustria OperaVPS Servers in CanadaCanadá OperaVPS Servers in DenmarkDinamarca OperaVPS Servers in FranceFrança OperaVPS Servers in GermanyAlemanha OperaVPS Servers in ItalyItália OperaVPS Servers in NetherlandsPaíses Baixos OperaVPS Servers in RomaniaRomênia OperaVPS Servers in United StatesEstados Unidos
Comparar
Piloto de confiança L3Web Hosting
Pontuação - 7.6
L3Web Hosting Logo
L3Web Hosting

L3Web Hosting

START UP
$1.99 /Por mês

Avaliações 2


Locais do servidor


L3Web Hosting Servers in IndiaÍndia L3Web Hosting Servers in MunichAlemanha L3Web Hosting Servers in MiamiEstados Unidos L3Web Hosting Servers in SingaporeCingapura L3Web Hosting Servers in United KingdomReino Unido
Comparar
Piloto de confiança Idea Stack
Pontuação - 7.4
Idea Stack Logo
Idea Stack

Pilha de ideias

LEVEL 1
$2 /Por mês

Avaliações 2


Locais do servidor


Idea Stack Servers in SeattleEstados Unidos
Comparar
Piloto de confiança Epic Host
Pontuação - 7.4
Epic Host Logo
Epic Host

Epic Host

Cloud hosting
$2.37 /Por mês

Avaliações 1


Locais do servidor


Epic Host Servers in New DelhiÍndia Epic Host Servers in UnionEstados Unidos
Comparar
Piloto de confiança itanets.co.uk
Pontuação - 7
itanets.co.uk Logo
itanets.co.uk

itanets.co.uk

JSP HOSTING 1
$5.19 /Por mês

Avaliações 2

Comparar
Piloto de confiança Digital Ocean
Pontuação - 3.8
Digital Ocean Logo
Digital Ocean

Oceano digital

$5 /mo
$5 /Por mês

Avaliações 214

38 Cupons

Locais do servidor


Digital Ocean Servers in IndiaÍndia Digital Ocean Servers in New YorkEstados Unidos Digital Ocean Servers in AmsterdamPaíses Baixos Digital Ocean Servers in LondonReino Unido Digital Ocean Servers in TorontoCanadá Digital Ocean Servers in Frankfurt am MainAlemanha Digital Ocean Servers in SingaporeCingapura
Comparar
Pontuação - 10
HOST PRO KE Logo
HOST PRO KE

HOST PRO KE

Host Pro Starter
$9.38 /Anual


Locais do servidor


HOST PRO KE Servers in GermanyAlemanha
Comparar
Pontuação - 9.4
Accu WebHosting Logo
Accu WebHosting

Accu WebHosting

Windows Personal Web Hosting
$2.99 /Por mês

19 Cupons

Locais do servidor


Accu WebHosting Servers in FranceFrança Accu WebHosting Servers in DenverEstados Unidos Accu WebHosting Servers in MumbaiÍndia Accu WebHosting Servers in AmsterdamPaíses Baixos Accu WebHosting Servers in Frankfurt am MainAlemanha Accu WebHosting Servers in SydneyAustrália Accu WebHosting Servers in LondonReino Unido Accu WebHosting Servers in PolandPolônia Accu WebHosting Servers in CanadaCanadá Accu WebHosting Servers in SingaporeCingapura
Comparar
Pontuação - 9
Be hostings Logo
Be hostings

Ser anfitriões

StarterSSL
$3.36 /Por mês


Locais do servidor


Be hostings Servers in BrusselsBélgica
Comparar
Pontuação - 4.3
Gear Host Logo
Gear Host

Gear Host

CloudSite Hobby
$5 /Por mês


Locais do servidor


Gear Host Servers in DenverEstados Unidos
Comparar
Pontuação - 1
Mikro VPS Logo
Mikro VPS

Mikro VPS

VPS SSD 1
$4.39 /Por mês


Locais do servidor


Mikro VPS Servers in BudapestHungria
Comparar
Pontuação - 0
Simple Node Logo
Simple Node

Nó Simples

OpenVZ - 256MB
$3 /Por mês

Comparar

 

Node.js

 

 

Node.js é um tempo de execução JavaScript de plataforma cruzada de código aberto que é executado em servidores. Desde o seu lançamento em 2009, esta plataforma tornou-se extremamente popular e desempenha um papel muito importante no campo do desenvolvimento web nos dias de hoje. Se considerarmos o número de estrelas que um projeto coletou no GitHub como um indicador de popularidade, o Node.js, que tem mais de 50.000 estrelas, é um projeto muito, muito popular.

 

A plataforma Node.js é construída no mecanismo V8 JavaScript do Google, que é usado no navegador Google Chrome. Esta plataforma é usada principalmente para criar servidores web, mas seu escopo não se limita a isso.

 

Vejamos os principais recursos do Node.js.

 

Rapidez

 

Uma das principais atrações do Node.js é a velocidade. O código JavaScript executado em Node.js pode ser duas vezes mais rápido do que o código escrito em linguagens compiladas como C ou Java, e ordens de magnitude mais rápidas do que linguagens interpretadas como Python ou Ruby. A razão para isso é a arquitetura sem bloqueio da plataforma, e os resultados específicos dependem dos benchmarks usados, mas no geral, Node.js é uma plataforma muito rápida.

 

Simplicidade

 

A plataforma Node.js é fácil de aprender e usar. Na verdade, é muito simples, especialmente quando comparado a algumas outras plataformas de servidor.

 

JavaScript

 

JavaScript é executado no ambiente Node.js. Isso significa que milhões de desenvolvedores front-end que já usam JavaScript no navegador podem escrever código do lado do servidor e do lado do cliente na mesma linguagem de programação sem ter que aprender uma ferramenta totalmente nova para passar para o desenvolvimento do lado do servidor.

 

O navegador e o servidor usam os mesmos conceitos de linguagem. Além disso, o Node.js pode fazer a transição rápida para novos padrões ECMAScript à medida que são implementados na plataforma.

 

Não há necessidade de esperar que os usuários atualizem seus navegadores para isso, pois o Node.js é um ambiente do lado do servidor que está completamente no controle do desenvolvedor. Como resultado, novos recursos de idioma tornam-se disponíveis quando você instala uma versão de suporte do Node.js.

 

Motor V8

 

No coração do Node.js, entre outras soluções, está o mecanismo V8 JavaScript de código aberto do Google, que é usado no Google Chrome e em outros navegadores. Isso significa que o Node.js está aproveitando as vantagens de milhares de engenheiros que tornaram o tempo de execução do JavaScript do Chrome incrivelmente rápido e continuam trabalhando para melhorar o V8.

 

Assincronia

 

Em linguagens de programação tradicionais (C, Java, Python, PHP), todas as instruções são bloqueadas por padrão, a menos que o desenvolvedor explicitamente cuide da execução do código de forma assíncrona. Como resultado, se, por exemplo, em tal ambiente, você fizer uma solicitação de rede para baixar algum código JSON, a execução do fluxo do qual a solicitação é feita será suspensa até que a resposta seja recebida e processada.

 

JavaScript torna muito mais fácil escrever código assíncrono e sem bloqueio usando um único thread, callbacks e uma abordagem de desenvolvimento orientada a eventos. Sempre que precisamos realizar uma operação pesada, passamos um callback para o mecanismo apropriado, que será chamado imediatamente após a conclusão desta operação. Com isso, não há necessidade de esperar pelos resultados dessas operações para que o programa continue funcionando.

 

Um mecanismo semelhante originado em navegadores. Não podemos esperar, digamos, por umAJAXsolicitação para terminar sem poder responder às ações do usuário, como cliques em botões. Para que seja conveniente aos usuários trabalhar com páginas da web, tudo, tanto o download de dados da rede quanto o processamento de cliques em botões, deve ocorrer simultaneamente, em tempo real.

 

Se você já criou um manipulador de eventos de clique de botão, já usou técnicas de programação assíncrona.

 

Os mecanismos assíncronos permitem que um único servidor Node.js lide simultaneamente com milhares de conexões sem sobrecarregar o programador com gerenciamento de threads e tarefas de execução paralela de código. Muitas vezes, essas coisas são fontes de erro.

 

O Node.js fornece ao desenvolvedor mecanismos básicos de E / S sem bloqueio e, em geral, as bibliotecas usadas na estrutura do Node.js são escritas usando paradigmas sem bloqueio.Isso torna o comportamento de bloqueio a exceção, e não a norma.

 

Quando o Node.js precisa realizar uma operação de I / O, como carregar dados da rede, acessar um banco de dados ou sistema de arquivos, em vez de bloquear o thread principal esperando pelos resultados de tal operação, o Node.js iniciará seu execução e continuar a fazer outras coisas até que os resultados desta operação sejam recebidos.

 

Bibliotecas

 

Com a facilidade e a conveniência de trabalhar com um gerenciador de pacotes para Node.js chamado npm, o ecossistema Node.js está prosperando. Existem agora mais de meio milhão de pacotes de código aberto no registro npm que qualquer desenvolvedor Node.js pode usar livremente.

 

Após revisar alguns dos principais recursos da plataforma Node.js, vamos testá-la em ação. Vamos começar com a instalação.

 

 

Node.js

 

 

Instalando Node.js

 

O Node.js pode ser instalado de várias maneiras, que abordaremos em um momento. Portanto, os pacotes de instalação oficiais para todas as principais plataformas podem ser encontrados.

 

Existe outra maneira muito conveniente de instalar o Node.js, que é usar o gerenciador de pacotes fornecido no sistema operacional. Por exemplo, o gerenciador de pacotes macOS, que é o padrão de fato nesta área, é chamado de Homebrew.

 

Se você tiver um em seu sistema, pode instalar o Node.js executando este comando na linha de comando:

 

brew install node

 

Uma lista de gerenciadores de pacotes para outros sistemas operacionais, incluindo Linux e Windows, pode ser encontrada aqui.

 

Um gerenciador de versão Node.js popular é o nvm. Esta ferramenta permite alternar convenientemente entre as diferentes versões do Node.js, com sua ajuda você pode, por exemplo, instalar e experimentar uma nova versão do Node.js e então, se necessário, reverter para a antiga. O Nvm também é útil em uma situação em que você precisa testar algum código em uma versão antiga do Node.js.

 

Para iniciantes usarem os instaladores oficiais do Node.js. Para usuários do macOS, é recomendável instalar o Node.js usando o Homebrew. Agora que você instalou o Node.js, é hora de escrever "Hello World".

 

Primeiro aplicativo Node.js

 

O exemplo mais comum de um primeiro aplicativo Node.js é um servidor da web simples. Aqui está seu código:

const http = requer ('http')

const hostname = '127.0.0.1'

porta const = 3000

servidor const = http.createServer ((req, res) = & gt; {

res.statusCode = 200

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

res.end ('Olá, mundo \ n')

})

server.listen (porta, nome do host, () = & gt; {

console.log (`Servidor em execução em http: // $ {hostname}: $ {port} /`)

})

 

Para executar este código, salve-o em um arquivo server.js e execute o seguinte comando no terminal:

 

node server.js

 

Para verificar o servidor, abra um navegador e insira na barra de endereços http://127.0.0.1:3000, ou seja, o endereço do servidor que será exibido no console após seu lançamento com sucesso. Se tudo funcionar como deveria, a página exibirá "Hello World".

 

Vejamos este exemplo.

 

Primeiro, observe que o código contém o comando para conectar o módulo HTTP.

 

A plataforma Node.js possui um excelente conjunto padrão de módulos, que inclui mecanismos bem desenvolvidos para trabalhar com a rede.

O método do objeto createServer () http cria um novo servidor HTTP e o retorna.

 

O servidor está configurado para escutar em uma porta específica em um host específico. Quando o servidor está pronto, o callback correspondente é acionado, informando que o servidor está rodando.

Quando o servidor recebe uma solicitação, é disparada uma solicitação de evento que fornece dois objetos. O primeiro é a solicitação (req, o objeto http.IncomingMessage), o segundo é a resposta (res, o objeto http.ServerResponse). Eles são os mecanismos mais importantes para lidar com solicitações HTTP.

 

O primeiro nos fornece informações sobre a solicitação. Em nosso exemplo simples, não usamos esses dados, mas, se necessário, usando o objeto, req você pode acessar os cabeçalhos de solicitação e os dados passados ​​nele.

 

O segundo é necessário para formar e enviar uma resposta a uma solicitação.

 

Nesse caso, formamos a resposta à solicitação da seguinte maneira. Primeiro, definimos o código de status da propriedade para um valor de 200, o que indica uma operação bem-sucedida:

 

res.statusCode = 200

Em seguida, definimos o título Content-Type:

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

Em seguida, concluímos a preparação da resposta adicionando seu conteúdo como um argumento para o método end ():

res.end ('Olá, mundo \ n')

 

Já mencionamos que um poderoso ecossistema se formou em torno da plataforma Node.js. Vamos agora discutir algumas estruturas populares e ferramentas auxiliares para Node.js.

 

Frameworks e ferramentas auxiliares para Node.js

 

Node.js é uma plataforma de baixo nível. Para simplificar o desenvolvimento e tornar a vida mais fácil para os programadores, um grande número de bibliotecas foi criado. Alguns deles se tornaram muito populares com o tempo. Aqui está uma pequena lista de bibliotecas que considero bem feitas e que vale a pena explorar:

 

Expressar: Esta biblioteca fornece ao desenvolvedor uma ferramenta extremamente simples, mas poderosa, para construir servidores web. A chave para o sucesso do Express tem sido uma abordagem minimalista e um foco em mecanismos básicos do lado do servidor, sem tentar impor uma visão de arquitetura de servidor "one-stop".

 

Meteoro: É uma estrutura de pilha completa poderosa que adota uma abordagem isomórfica para desenvolver aplicativos JavaScript e usar código no cliente e no servidor. Outrora, o Meteor era uma ferramenta independente que inclui tudo que um desenvolvedor poderia precisar. Agora também se integra a bibliotecas de front-end, como React, Vue e Angular. O Meteor, além de desenvolver aplicações web comuns, também pode ser usado no desenvolvimento móvel.

 

Koa: Esta estrutura da web é construída pela mesma equipe por trás do Express. Com base em anos de experiência com o Express, ele foi desenvolvido com foco na simplicidade e compactação. Este projeto surgiu como uma solução para o problema de fazer grandes mudanças no Express que são incompatíveis com outros mecanismos de framework que podem dividir a comunidade.

 

Next.jsObservação: esta estrutura foi projetada para organizar a renderização do lado do servidor de aplicativos React.

 

Micro: É uma biblioteca muito leve para a construção de microsserviços HTTP assíncronos.

Socket.io. É uma biblioteca para o desenvolvimento de aplicativos de rede em tempo real.

 

Na verdade, no ecossistema Node.js, você pode encontrar uma biblioteca auxiliar para quase todas as tarefas. Como você pode imaginar, leva muito tempo para construir esse ecossistema. A plataforma Node.js surgiu em 2009. Durante sua existência, aconteceram muitas coisas que deveriam ser conhecidas por um programador que deseja aprender esta plataforma.

 

Uma breve história do Node.js

 

Node.js faz 9 anos este ano. É claro que isso não é tanto quando você compara esta idade com a idade do JavaScript, que já tem 23 anos, ou com a idade de 25 anos da web como a conhecemos se contarmos com o advento do Mosaico navegador.

 

9 anos é pouco tempo para a tecnologia, mas agora parece que a plataforma Node.js sempre existiu.

 

Com Node.js das primeiras versões da plataforma quando tinha apenas 2 anos. Mesmo assim, apesar de não haver tanta informação sobre o Node.js, já se podia sentir que o Node.js é muito sério.

 

Agora vamos falar sobre as tecnologias por trás do Node.js e dar uma olhada rápida noprincipais desenvolvimentos relacionados a esta plataforma.

 

Portanto, JavaScript é uma linguagem de programação que foi criada no Netscape como uma linguagem de script para manipular páginas da web no navegador Netscape Navigator.

Parte do negócio da Netscape era vender servidores web, que incluíam um ambiente chamado Netscape LiveWire. Ele permitiu que você crie páginas da web dinâmicas usando JavaScript do lado do servidor.

 

a ideia de usar JS para desenvolvimento do lado do servidor é muito mais antiga do que Node.js. Essa ideia é quase tão antiga quanto o próprio JavaScript, mas na época em questão, o JS do lado do servidor não era popular.

 

Um dos principais fatores que tornaram a plataforma Node.js tão difundida e popular foi quando ela apareceu pela primeira vez. Então, alguns anos antes, o JavaScript começou a ser considerado uma linguagem séria. Isso aconteceu graças a aplicativos da Web 2.0 como o Google Maps ou Gmail, que mostraram ao mundo o poder das tecnologias modernas da web.

 

Graças à guerra competitiva de navegadores, que continua até hoje, o desempenho dos motores JavaScript aumentou significativamente. As equipes de desenvolvimento por trás dos principais navegadores estão trabalhando todos os dias para melhorar o desempenho de suas soluções, o que tem um efeito benéfico no JavaScript em geral.

 

Um desses motores é o já citado V8, usado no navegador Chrome e usado no Node.js. É um dos resultados dos desenvolvedores de navegador que buscam um código JavaScript de alto desempenho.

 

É claro que a popularidade do Node.js não se baseia apenas em uma feliz coincidência e no fato de que a plataforma nasceu na hora certa. Ela apresentou ao mundo uma abordagem inovadora para o desenvolvimento de JavaScript do lado do servidor. Vejamos os principais marcos na história do Node.js.

 

2009


  • O surgimento do Node.js

  • Fazendo a primeira variante npm.

 

2010

  • A aparência do Express.

  • O surgimento de Socket.io.

 

2011


  • Versão 1.0 do Npm.

  • Grandes empresas como LinkedIn e Uber começaram a usar o Node.js.

 

2012


  • O rápido aumento da popularidade do Node.js.

 

2013


  • O surgimento do Ghost, a primeira grande plataforma para publicações usando Node.js.

  • Lançamento Koa.

 

2014


  • Eventos dramáticos aconteceram este ano. Surgiu o projeto IO.js, que é um fork do Node.js, cujo objetivo, entre outras coisas, era apresentar o suporte ES6 e acelerar o desenvolvimento da plataforma.

 

2015


  • A Fundação Node.js é fundada.

  • Mesclando IO.js e Node.js.

  • No npm, é possível trabalhar com módulos privados.

  • Rendimento Node.js 4 (deve-se observar que as versões 1, 2 e 3 da plataforma não).

 

2016


  • Incidente com o pacote esquerdo.

  • O surgimento do Yarn.

  • Versão do Node.js 6.

 

2017


  • O Npm está começando a prestar mais atenção à segurança.

  • Versão 8 do Node.js

  • O surgimento do suporte para HTTP / 2.

  • O V8 é oficialmente reconhecido como um mecanismo JS projetado não apenas para o Chrome, mas também para o Node.

  • Há 3 bilhões de downloads NPM todas as semanas.

 

2018


  • Versão 10 do Node.js.

  • Suporte para módulos ES.

  • Suporte experimental para mjs.