O Node.js é um software de código aberto e totalmente gratuito que permite que os desenvolvedores da Web criem programas de rede escaláveis e rápidos. Baseando-se no tempo de execução JavaScript do Chrome, o software Node.js é extremamente eficiente e leve, especialmente porque usa um modelo de E / S não-bloqueante e orientado a eventos.
A principal plataforma para executar o código JavaScript do lado do servidor
O Node.js é atualmente considerado a principal plataforma para executar o código JavaScript do lado do servidor, sendo usado em produção em grandes empresas como Google, eBay, Yahoo, LinkedIn, Microsoft, Cloud9 e muitos outros.
Exemplo obrigatório
O código a seguir criará um servidor da Web simples que responde com "Hello World" para cada solicitação.
var http = require ('http');
http.createServer (function (req, res) {
res.writeHead (200, {'Tipo de Conteúdo': 'texto / simples'});
res.end ('Hello Worldn');
}) listen (1337, '127.0.0.1');
console.log ('Servidor rodando em http://127.0.0.1:1337/');
Para executar o servidor HTTP, você precisará do código acima em um arquivo chamado & ldquo; example.js & rdquo; (sem aspas) e execute-o com o comando node de um emulador de terminal:
% node exemplo.js
Servidor em execução em http://127.0.0.1:1337/
Sistemas Operacionais Suportados
O Node.js é uma aplicação multi-plataforma que foi testada com sucesso sob numerosas distribuições GNU / Linux, incluindo Debian, Ubuntu, Arch Linux, Fedora, Red Hat Enterprise Linux, openSUSE, Mageia, Slackware, entre outras. como nos sistemas operacionais comerciais Mac OS X e Microsoft Windows. Ambas as arquiteturas de conjunto de instruções de 64 bits e 32 bits são suportadas no momento.
Sob o capô, requisitos e disponibilidade
Como mencionado, este é um software multi-plataforma. Ele pode ser baixado como instaladores pré-construídos para os sistemas operacionais Mac OS X, GNU / Linux e Microsoft Windows, bem como um arquivo fonte universal que pode ser compilado e instalado em praticamente qualquer sistema operacional em que o Python seja suportado. >
O que há de novo nesta versão:
- console:
- O método console.timeLog () foi implementado. # 21312
- deps:
- Atualize para o libuv 1.22.0. # 21731
- Atualize para o ICU 62.1 (Unicode 11, CLDR 33.1). # 21728
- http:
- Adicionado suporte para passar as opções de tempo limite e agente para http.request. # 21204
- inspetor:
- Exponha a API do console original no console require ('inspector'). # 21659
- napi:
- Adicionado suporte experimental para funções que lidam com números bigint. # 21226
- process:
- O método process.hrtime.bigint () foi implementado. # 21256
- Adicionado o argumento de linha de comando --title para definir o título do processo na inicialização. # 21477
- trace_events:
- Adicionados metadados process_name. # 21477
- Adicionados novos colaboradores
- codebytere - Shelley Vohr
O que há de novo na versão 10.0.0:
- Suporte total para N-API
- Introdução fácil à depuração no tempo-viagem por meio de uma nova extensão de código do Visual Studio
- Suporte TTD para geradores e funções assíncronas
- Suporte para o protocolo Inspector
- Maior estabilidade e outras melhorias variadas
O que há de novo na versão:
- async_hooks:
- adicionar eventos de rastreamento a async_hooks (Andreas Madsen) # 15538
- adicione tipos de provedor para o servidor de rede (Andreas Madsen) # 17157
- console:
- console.debug agora pode ser usado fora do inspetor (Benjamin Zaslavsky) # 17033
- deps:
- atualize o libuv para 1.18.0 (cjihrig) # 17282
- remendo V8 para 6.2.414.46 (Myles Borins) # 17206
- módulo:
- module.builtinModules retornará uma lista de módulos internos (Jon Moss) # 16386
- n-api:
- adicione um ajudante para os addons para obter o loop de eventos (Anna Henningsen) # 17109
- process:
- process.setUncaughtExceptionCaptureCallback agora pode ser usado para personalizar o comportamento de --abort-on-uncaught-exception (Anna Henningsen) # 17159
- Um manipulador de sinal agora pode receber o código de sinal que acionou o manipulador. (Robert Rossmann) # 15606
- src:
- agora podem usar o Node :: CreatePlatform para criar uma instância do NodePlatform (Cheng Zhao) # 16981
- stream:
- writable.writableHighWaterMark e readable.readableHighWaterMark retornará os valores com os quais o objeto de fluxo foi instanciado (Calvin Metcalf) # 12860
- Adicionados novos colaboradores
- maclover7 Jon Moss
- Guy Bedford de Guybedford
- hashseed Yang Guo
Os embedders
O que há de novo na versão 9.2.0:
- criptografia:
- Suporte à construção com 1.1.0 e 1.0.2 (David Benjamin) # 16130
- fs:
- fs.realpathSync.native e fs.realpath.native estão agora expostos (Ben Noordhuis) # 15776
- process:
- expor process.ppid (cjihrig) # 16839
O que há de novo na versão 8.5.0:
- build:
- Os instantâneos agora são reativados na V8 # 14875
- console:
- Implemente o mínimo console.group (). # 14910
- deps:
- atualize o libuv para 1.14.1 # 14866
- atualize o nghttp2 para a v1.25.0 # 14955
- dns:
- Adicione a opção verbatim ao dns.lookup (). Quando true, os resultados do resolvedor de DNS são transmitidos no estado em que se encontram, sem a reorganização que o Node.js em outros casos coloca endereços IPv4 antes dos endereços IPv6. # 14731
- fs:
- adicione fs.copyFile e fs.copyFileSync, o que permite uma cópia mais eficiente dos arquivos. # 15034
- inspetor:
- Ativar rastreios de pilha assíncrona # 13870
- módulo:
- Adicione suporte para o ESM. Isso está atualmente por trás do sinalizador --eximensivo-modules e requer a extensão .mjs. nó --experimental-modules index.mjs # 14369
- napi:
- implemente a promessa # 14365
- os:
- Inclua suporte para a notação CIDR na saída do método networkInterfaces (). # 14307
- perf_hooks:
- Uma implementação inicial da API de tempo de desempenho para o Node.js. Essa é a mesma API de tempo de execução implementada pelos navegadores modernos com várias propriedades específicas do Node.js. As APIs User Timing mark () e measure () são implementadas. # 14680
- tls:
- vários PFX em createSecureContext # 14793
- Adicionados novos colaboradores:
- BridgeAR - Ruben Bridgewater
O que há de novo na versão 8.3.0:
- O mecanismo V8 foi atualizado para a versão 6.0, que possui um perfil de desempenho significativamente alterado.
- Outras alterações notáveis:
- DNS:
- Instâncias de resolução de DNS independentes são suportadas agora, com suporte para cancelar as solicitações correspondentes.
- N-API:
- Várias funções da N-API para tratamento de erros foram alteradas para suportar a atribuição de códigos de erro.
- REPL:
- O suporte ao preenchimento automático de require () foi melhorado.
- Utilitários:
- O padrão de codificação WHATWG (TextDecoder e TextEncoder) foi implementado como um recurso experimental.
O que há de novo na versão 8.1.3:
- Stream Two regressions com o módulo de fluxo foram corrigidos:
- O evento de conclusão será sempre emitido após o evento de erro, se um for emitido: [0a9e96e86c] # 13850
- No modo de objeto, os fluxos legíveis agora podem usar o indefinido novamente. [5840138e70] # 13760
O que há de novo na versão 8.1.2:
- Corrija as propriedades de process.release quebradas no 8.1.1, causando a falha na compilação de complementos nativos em plataformas diferentes do Windows. Esta é uma correção no processo de compilação do Node.js, portanto, não há commits de código adicionais incluídos na parte superior do 8.1.1.
O que há de novo na versão 7.7.1:
- [c8e34b61f6] - build: adiciona arquivos de cabeçalho src / tracing ausentes (Daniel Bevenius) # 10851
- [96f55f9e59] - src: move trace_event.h inclui para o cabeçalho interno (Ben Noordhuis) # 10959
- [30c80cbe6f] - src: conserta a limpeza do TracingController (Jason Ginchereau) # 10623
- [b89b2a7d36] - src: sempre inicializa o controlador de rastreio no agente (Matt Loring) # 10507
- [54e55e05ca] - teste: torne o teste-intl-no-icu-data mais robusto (Michael Zasso) # 10992
- [7b253eb3ed] - teste: aumenta o rigor do teste-traço-evento (Rich Trott) # 11065
- [3dc4a5f1f4] - rastreamento: correção -Wunused-aviso de campo privado (Santiago Gimeno) # 10416
- [8a918bf411] - rastreamento: correção - aviso de aviso (Santiago Gimeno) # 10416
O que há de novo na versão 7.4.0:
- buffer:
- Melhore o desempenho da alocação de buffer em ~ 11%. (Brian White) # 10443
- Melhore o desempenho de Buffer.from () em aproximadamente 50%. (Brian White) # 10443
- eventos: Melhore o desempenho de EventEmitter.once () em ~ 27%. (Brian White) # 10445
- fs: Permite passar o Uint8Array para métodos fs em que os Buffers são suportados. (Anna Henningsen) # 10382
- http: Melhore o desempenho do servidor http em aproximadamente 7%. (Brian White) # 6533
- npm: atualização para v4.0.5 (Kat Marchan) # 10330
O que há de novo na versão 7.2.1:
- buffer:
- Revertida a suspensão no tempo de execução de chamar Buffer () sem new. (Anna Henningsen) # 9529
- Buffer.transcode () fixo para codificações de caracteres de byte único para UCS2. (Anna Henningsen) # 9838
- prometa: --trace-warnings agora produz stacktraces úteis para avisos do Promise. (Anna Henningsen) # 9525
- repl: Corrigido um bug que impedia a análise correta das funções do gerador. (Teddy Katz) # 9852
- V8: Corrigido um exemplo significativo de regressão de desempenho. (Franziska Hinkelmann) # 9730
O que há de novo na versão 7.2.0:
- crypto: Os métodos Decipher setAuthTag () e setAAD agora retornam isso.
- dns: Implementado {ttl: true} para resolve4 () e resolve6 ().
- libuv: Atualize para a v1.10.1
- Corrigido um possível estouro de buffer ao gravar dados no console no Windows 10. (CVE-2016-9551)
- process: Adicionada uma nova propriedade externa aos dados retornados pelo memoryUsage ().
- tls: Corrigido vazamento de memória quando as gravações eram enfileiradas na conexão TLS que foi destruída durante o handshake.
- V8 (dep): atualização para v5.4.500.43
- v8: Os dados retornados por getHeapStatistics () agora incluem três novos campos: malloced_memory, peak_malloced_memory e do_zap_garbage.
O que há de novo na versão 6.4.0:
- build: símbolos zlib e símbolos OpenSSL adicionais são agora expostos nas plataformas Windows. (Alex Hultman) # 7983 e # 7576
- child_process, cluster: Processos filho bifurcados e trabalhadores de cluster agora suportam a configuração stdio. (Colin Ihrig) # 7811 e # 7838
- child_process: argv [0] agora pode ser configurado para valores arbitrários em processos gerados. (Pat Pannuto) # 7696
- fs: fs.ReadStream agora expõe o número de bytes que leu até agora. (Linus Unneback) # 7942
- repl: O REPL agora suporta o modo editor. (Príncipe J Wesley) # 7275
- util: inspect () agora pode ser configurado globalmente usando util.inspect.defaultOptions. (Roman Reiss) # 8013
O que há de novo na versão 6.3.0:
- buffer: Adicionado buffer.swap64 () para complementar o swap16 () & amp; swap32 (). (Zach Bjornson) # 7157
- build: novas opções de configuração foram adicionadas para criar o Node.js como uma biblioteca compartilhada. (Stefan Budeanu) # 6994
- As opções são: --shared, --without-v8-platform & amp; - sem-pacote-v8.
- criptografia: os certificados raiz foram atualizados. (Ben Noordhuis) # 7363
- debugger: O endereço do servidor agora pode ser configurado via --debug = :. (Ben Noordhuis) # 3316
- npm: Atualizado npm para v3.10.3 (Kat Marchan) # 7515 & amp; (Rebecca Turner) # 7410
- readline: Adicionada a opção de prompt ao construtor readline. (Evan Lucas) # 7125
- repl / vm: O sigint / ctrl + c irá agora sair de loops infinitos sem parar a instância do Node.js. (Anna Henningsen) # 6635
- src:
- Adicionada uma API C ++ pública do node :: FreeEnvironment. (Cheng Zhao) # 3098
- Refactored require ('constantes'), as constantes agora estão disponíveis diretamente em seus respectivos módulos. (James M Snell) # 6534
- : desempenho readable.read () melhorado em até 70%. (Brian White) # 7077
- timers: setImmediate () agora é até 150% mais rápido em algumas situações. (Andras) # 6436
- util: adicionada uma opção breakLength ao util.inspect () para controlar como os objetos são formatados nas linhas. (cjihrig) # 7499
- v8-inspector: Suporte experimental foi adicionado para depurar o Node.js sobre o protocolo do inspetor. (Ali Ijaz Sheikh) # 6792
- Observação: esse recurso é experimental e pode ser alterado ou removido.
- Você pode tentar esse recurso executando o Node.js com o sinalizador --inspect.
Fluxo
O que há de novo na versão 6.0.0:
- Buffer:
- Os novos construtores Buffer foram adicionados # 4682 e # 5833.
- Os construtores Buffer () e SlowBuffer () existentes foram preteridos nos documentos # 4682 e # 5833.
- As APIs de buffer obsoletas foram removidas # 5048, # 4594.
- Tratamento de erros aprimorado # 4514.
- O método Buffer.prototype.lastIndexOf () foi adicionado # 4846.
- Cluster:
- Trabalhador emitido como primeiro argumento no evento 'message' # 5361.
- A propriedade worker.exitedAfterDisconnect substitui worker.suicide # 3743.
- Console:
- Chamar console.timeEnd () com um rótulo desconhecido agora emite um aviso de processo em vez de lançar # 5901.
- Criptografia:
- Tratamento de erros aprimorado # 3100, # 5611.
- Ligações de classe de certificado simplificado # 5382.
- Melhor controle sobre o modo FIPS # 5181.
- A sobrecarga de resumo pbkdf2 está obsoleta # 4047.
- Dependências:
- Reintroduza o suporte de compilação c-ares compartilhado # 5775.
- V8 atualizado para 5.0.71.35 # 6372.
- DNS:
- Adicione a API dns.resolvePtr () para consultar registros DNS PTR simples # 4921.
- Domínios:
- Limpar pilha quando não houver manipulador de erros # 4659.
- Eventos:
- O objeto EventEmitter.prototype._events não é mais herdado do Object.prototype # 6092.
- Os métodos EventEmitter.prototype.prependListener () e EventEmitter.prototype.prependOnceListener () foram adicionados # 6032.
- Sistema de arquivos:
- Os métodos fs.realpath () e fs.realpathSync () foram atualizados para usar uma implementação baseada em libuv mais eficiente. Essa alteração inclui a remoção do argumento de cache e o método pode lançar novos erros # 3594.
- O FS apis agora pode aceitar e retornar caminhos como Buffers # 5616.
- Tratamento de erros e melhorias na verificação de tipos # 5616, # 5590, # 4518, # 3917.
- fs.read está obsoleta # 4525.
- HTTP:
- 'clientError' agora pode ser usado para retornar erros personalizados de um servidor HTTP # 4557.
- Módulos:
- O diretório atual agora é priorizado para pesquisas locais # 5689.
- Links simbólicos são preservados ao exigir os módulos nº5950.
- Net:
- As dicas de DNS não definem implicitamente # 6021.
- Tratamento de erros aprimorado e verificação de tipos # 5981, # 5733, # 2904.
- OS X:
- MACOSX_DEPLOYMENT_TARGET foi ampliado para 10,7 # 6402.
- Caminho:
- Verificação de tipo aprimorada # 5348.
- Processo:
- Introduza a API de avisos de processo # 4782.
- Lança a exceção quando a função não é passada para o nextTick # 3860.
- Querystring:
- O objeto retornado por querystring.parse () não é mais herdado de Object.prototype # 6055.
- Readline:
- As informações da chave são emitidas incondicionalmente # 6024.
- O histórico agora pode ser explicitamente desativado # 6352.
- REPL:
- A atribuição para _ emitirá um aviso # 5535.
- As expressões não serão mais concluídas quando o eval falhar # 6328.
- Timers:
- Falha no início quando o retorno de chamada não é uma função # 4362.
- Fluxos:
- null agora é um bloco inválido para escrever no modo de objeto # 6170.
- TLS:
- Renomeie 'clientError' para 'tlsClientError' # 4557.
- SHA1 usado para sessionIdContext # 3866.
- TTY:
- O wrapper setRawMode obsoleto é removido # 2528.
- URL:
- O nome de usuário e a senha serão removidos pelo url.resolve () se o host alterar # 1480.
- Util:
- Muda para a formatação do objeto Error # 4582.
- O método util._extend () foi descontinuado # 4903
- O método util.log () foi descontinuado # 6161.
- Windows:
- O Windows XP e o Vista não são mais suportados # 5167.
- Zlib:
- Várias melhorias foram feitas no processamento Zlib # 5883 e # 5707.
A interface de string de
Requisitos :
- Python
Comentários não encontrado