Como decidir quando usar o nó.js?
sou novo neste tipo de coisas, mas ultimamente tenho ouvido muito sobre o quão bom {[[2]}nó.o js é. Considerando o quanto eu amo trabalhar com jQuery e JavaScript em geral, não posso deixar de me perguntar como decidir quando usar Node.js. A aplicação web que tenho em mente é algo como Bitly - Pega algum conteúdo, arquiva-o.
De todos os trabalhos de casa que tenho feito nos últimos dias, obtive a seguinte informação. No.js- é uma ferramenta de linha de comandos que pode ser executada como um servidor web regular e permite executar programas JavaScript
- utiliza o grande V8 motor JavaScript
- é muito bom quando você precisa fazer várias coisas ao mesmo tempo
- é baseado em eventos por isso todas as coisas maravilhosas Ajax podem ser feitas do lado do servidor
- permite-nos partilhar o código entre o navegador e a infra-estrutura Vamos falar com o MySQL.
- a mergulhar no nódulo.js-introdução e instalação
- Compreender Os NodeJS
- nó por exemplo (Archive.is)
- Vamos Fazer uma Aplicação Web: NodePad
considerando esse nó.js pode ser executado quase fora da caixa nas instâncias EC2 da Amazon, estou tentando entender que tipo de problemas requerem nó.js em oposição a qualquer um dos poderosos reis lá fora como PHP, Python e Ruby. Compreendo que isso dependa, de facto, da competência que se tem numa lÃngua, mas a minha pergunta insere-se mais na categoria Geral de: quando utilizar um determinado quadro e para que tipo de problemas é que ele é particularmente adequado?
17 answers
Isto significa que pode criar uma aplicação de chat baseada no navegador no nó.js que quase não precisa de recursos do sistema para atender a um grande número de clientes. Quando quiseres fazer este tipo de sondagens, nó.o js é uma óptima opção.
Vale a pena. mencionando que Ruby e Python ambos têm ferramentas para fazer este tipo de coisa (eventmachine e twisted, respectivamente), mas esse nó.o js fá-lo excepcionalmente bem, e a partir do zero. JavaScript é excepcionalmente bem situado para um modelo de concorrência baseado em callback, e é excelente aqui. Além disso, ser capaz de serializar e deserializar com JSON nativo para o cliente e o servidor é muito nifty. Estou ansioso por ler outras respostas aqui. pergunta fantástica. Vale a pena apontar esse nó.js também é ótimo para situações em que você vai reutilizar um monte de código através do cliente/servidor gap. A estrutura meteórica torna isto muito fácil, e muita gente está a sugerir que este pode ser o futuro do desenvolvimento da web. Posso dizer por experiência própria que é muito divertido escrever código no meteoro, e uma grande parte disto é gastar menos tempo a pensar em como vai reestruturar os seus dados, então o o código que corre no navegador pode facilmente manipulá-lo e passá-lo de volta.Aqui está um artigo sobre a Pirâmide e de longa pesquisa, que acaba por ser muito fácil de configurar, com uma pequena ajuda de gevent: Velha e Longa pesquisa com Pirâmide.
Devo também mencionar que Socket.IO em combinação com o nó.js irá reduzir a sua latência em tempo real ainda mais do que o que é possÃvel com sondagens longas. Socket.IO vai voltar para a votação longa como o pior caso cenário, e em vez usar sockets web ou até mesmo Flash se eles estão disponÃveis.
Mas também devo mencionar que qualquer situação em que o código possa bloquear devido a threads pode ser melhor tratada com nó.js. Ou qualquer situação em que você precisa do aplicativo para ser motivado por eventos.
Além disso, o Ryan Dahl disse numa conversa que uma vez assisti ao nó.js benchmarks rivalizam com a Nginx para pedidos HTTP antigos e regulares. Então, se construirmos com o nodo.js, podemos servir os nossos recursos normais. de forma bastante eficaz, e quando precisamos das coisas motivadas pelo evento, está pronto para lidar com isso. Além disso, é sempre JavaScript. LÃngua Franca em toda a pilha.Razões para utilizar NodeJS:
Ele executa Javascript, então você pode usar o mesmo idioma no servidor e cliente, e até mesmo compartilhar algum código entre eles (por exemplo, para validação do formulário, ou para renderizar vistas em qualquer extremidade.)
O single-threaded orientada a eventos do sistema é rápido mesmo quando o tratamento de muitos pedidos de uma só vez, e também simples, em comparação ao tradicional multi-threaded Java ou ROR quadro.
O pool sempre crescente de pacotes acessÃveis através do NPM , incluindo bibliotecas/módulos do lado do cliente e do servidor, bem como ferramentas de linha de comandos para o desenvolvimento web. A maioria destes são convenientemente hospedados no github, onde à s vezes você pode relatar um problema e encontrá-lo fixado em poucas horas! É bom ter tudo sob um mesmo tecto, com relatórios padronizados e fácil bifurcação.
Tornou-se o padrão defacto ambiente em que executar As ferramentas relacionadas com o Javascript e outras ferramentas relacionadas com a web, incluindo os executantes de Tarefas, minificadores, embelezadores, linters, pré-processadores, bundlers e processadores de análise.
Parece bastante adequado para prototipagem, desenvolvimento ágil e iteração rápida do produto .
Razões para não utilizar NodeJS:
Ele executa Javascript, que não tem verificação do tipo compile-time. Para grandes, complexos segurança sistemas ou projetos, incluindo a colaboração entre organizações diferentes, uma lÃngua que incentiva contratuais interfaces e fornece static verificação de tipo pode poupar-lhe algum tempo de depuração (e explosões) no longo prazo. (Embora a JVM esteja presa a {[[0]}, por isso, por favor, usem o Haskell para os vossos reactores nucleares.)
Adicionado a isso, muitos dos pacotes em NPM são um pouco crus , e ainda sob rapid desenvolvimento. Algumas bibliotecas para frameworks mais antigos passaram por uma década de testes e bugfixing, e estão muito estáveis neste momento. Npmjs.org não dispõe de qualquer mecanismo para avaliar os pacotes, o que levou a uma proliferação de pacotes fazendo mais ou menos a mesma coisa, dos quais uma grande percentagem já não é mantida.
Um inferno de chamadas aninhadas. (É claro que existem 20 soluções diferentes para isso...)
O pool sempre crescente de pacotes podem fazer um projeto NodeJS aparecer radicalmente diferente do próximo. Existe uma grande diversidade nas implementações devido ao grande número de opções disponÃveis (por exemplo, velas Express/.js/Meteoro/Derby). Isso à s vezes pode tornar mais difÃcil para um novo desenvolvedor para saltar em um projeto de nó. Contrastando com um desenvolvedor Rails se juntando a um projeto existente: ele deve ser capaz de se familiarizar com o aplicativo rapidamente, porque todos os trilhos os aplicativos são incentivados a usar uma estrutura similar.
Lidar com arquivos pode ser um pouco chato. Coisas que são triviais em outras lÃnguas, como ler uma linha de um arquivo de texto, são estranhas o suficiente para fazer com nó.js que há uma questão de fluxo de StackOverflow nisso com mais de 80 upvotes. Não há uma forma simples de ler um registo de cada vez a partir de um ficheiro CSV. Etc.
Para ser breve:
Nó.js é bem adequado para aplicações que têm um monte de conexões simultâneas e cada pedido só precisa de muito poucos ciclos de CPU, porque o ciclo de eventos (com todos os outros clientes) é bloqueado durante a execução de uma função.
Um bom artigo sobre o ciclo de eventos no nó.js is Mixu's tech blog: Understanding the node.ciclo de eventos js.
Tenho um exemplo no mundo real onde usei o nó.js. A empresa onde eu trabalho conseguiu um cliente que queria ter um site HTML estática simples. Este site é para vender um item usando PayPal e o cliente também queria ter um contador que mostra a quantidade de itens vendidos. O cliente esperava ter uma enorme quantidade de visitantes para este site. Decidi fazer o contador usando o nó.js e o Expresso.enquadramento js
O Nó.a aplicação do js era simples. Obter a quantidade de itens vendidos a partir de uma base de dados Redis, aumentar o contador quando o item é vendido e servir o valor do contador para os usuários através da API .
Algumas razões pelas quais escolhi usar o nó.js neste caso
-
É muito leve e rápido. Houve mais de 200 mil visitas neste site em três semanas e recursos mÃnimos do servidor tem sido capaz de lidar com tudo isso.
O balcão é muito fácil de fazer para ser em tempo real.
- nó.js foi fácil de configurar.
- existem muitos módulos disponÃveis gratuitamente. Por exemplo, encontrei um nó.módulo js para PayPal.
Neste caso, nó.o js foi uma escolha incrÃvel.
As razões mais importantes para iniciar o seu próximo projecto usando o nó ...
- Todos os tipos mais fixes gostam disso ... então deve ser divertido.
Podes ficar no cooler e ter muitas aventuras de nó para te gabares.
Você é um pivete quando se trata de custos de hospedagem em nuvem.
Já fiz isso com Carris.
Tu odeias estes destacamentos.
O teu antigo trabalho de TI está a ficar aborrecido e desejas estar num novo começo Ate.
- Vai sentir-se seguro e seguro com o Express sem todo o 'bloatware' do servidor que nunca precisou.
Corre como um foguete e balança bem.
Você sonha. Instalaste-o. O pacote de nós repo npmjs.org é o maior ecossistema de bibliotecas de código aberto do mundo.
O teu cérebro ficará distorcido na terra das chamadas aninhadas ...
- ... até aprenderes a manter a tua promessas .
- Sequelizar epassaporte são os teus novos amigos da API. Depuração A maior parte do Código async vai ficar umm ... Interessante .
- está na hora de todos os leitores dominarem O texto .
- PayPal, Netflix, Walmart, LinkedIn, Groupon, Uber, GoDaddy, Dow Jones Eis porque mudaram para o nó .
Quando usar o nó.JS
- Se o código do lado do servidor necessitar de poucos ciclos de cpu. Em outro mundo você está fazendo Operação de não bloqueio e não tem algoritmo pesado/trabalho que consome muitos ciclos de CPU.
- Se você é de Javascript back ground e confortável em escrever um único código roscado, assim como o cliente lado js.
Quando não usar o nó.JS
- o seu pedido do servidor depende do consumo pesado de CPU algoritmo / trabalho.
Consideração de escalabilidade com nó.JS
- nó.JS em si não utiliza todo o núcleo do sistema subjacente e é único thread por padrão, você tem que escrever lógica por si mesmo para utilizar processador multi core e torná-lo multi threaded.
Nó.Alternativas JS
Existem outras opções para usar no lugar do nó.JS no entanto Vert.x parece ser muito promissor e tem muitas caracterÃsticas adicionais como poligot e melhores considerações de escalabilidade.
Outra grande coisa que eu acho ninguém mencionou sobre Nodo.js é a comunidade incrÃvel, o sistema de gerenciamento de pacotes (npm) e a quantidade de módulos que existem que você pode incluir simplesmente incluindo-os em seu pacote.ficheiro json.
A minha peça: nodejs é óptima para criar sistemas em tempo real como analytics, chat-apps, apis, servidores de anúncios, etc. Raios, eu fiz o meu primeiro aplicativo de chat usando nodejs e socket.io menos de 2 horas e isso também durante o exame semana!
Editar
Passaram-se vários anos desde que comecei a usar o nodejs e usei-o para fazer muitas coisas diferentes, incluindo servidores de ficheiros estáticos, análises simples, aplicações de chat e muito mais. Esta é a minha opinião quando devo utilizar nodejs
Quando a utilizar
Ao criar um sistema que dê ênfase à concorrência e à velocidade.
- Sockets apenas servidores como aplicativos de chat, aplicativos de irc, etc. Redes sociais que colocam ênfase em recursos em tempo real, como geolocalização, fluxo de vÃdeo, fluxo de áudio, etc.
- lidar com pequenos pedaços de dados muito rapidamente como um webapp analÃtico.
- como expondo uma api de descanso.
Quando não usar
É um servidor web muito versátil para que você pode usá-lo onde quiser, mas provavelmente não nestes lugares.
- Blogs simples e sites estáticos.
Como um servidor de ficheiros estático.
Pode ser usado quando
- As aplicações que são altamente motivadas por eventos e estão fortemente ligadas a I/O
- aplicações que lidam com um grande número de ligações a outros sistemas
- aplicações em tempo Real (nó.js foi projetado a partir do zero para o tempo real e para ser fácil usar.)
- aplicações que fazem malabarismo com montes de informação a circular de e para outras fontes
- tráfego elevado, aplicações escaláveis Aplicações móveis que têm de falar com a plataforma API & base de dados, sem ter que fazer um monte de dados analytics
- construir aplicações em rede
- aplicações que precisam de falar com muita frequência
Na Frente Móvel, as empresas do horário nobre confiaram no Node.js para suas soluções móveis. Porquê?
LinkedIn é um utilizador proeminente. Toda a sua pilha móvel é construÃda no nó.js. Eles passaram de correr 15 servidores com 15 instâncias em cada máquina fÃsica, para apenas 4 instâncias-que podem lidar com o dobro do tráfego!
O EBay foi lançado ql.io, uma linguagem de consulta web para APIs HTTP, que usa Node.js como a pilha de tempo de execução. Eles foram capazes de sintonizar uma estação de trabalho Ubuntu de qualidade de desenvolvedor regular para lidar com mais de 120 mil conexões ativas por nó.processo js, com cada conexão consumindo cerca de memória 2kB!
O Walmart reformulou a aplicação móvel para usar o nodo.js e empurrou o seu processamento JavaScript para o servidor.
Leia mais em: http://www.pixelatingbits.com/a-closer-look-at-mobile-app-development-with-node-js/Nó melhor para o tratamento de pedidos simultâneos -
Então, vamos começar com uma história. A partir dos últimos 2 anos eu estou trabalhando em JavaScript e desenvolvimento web front end e eu estou gostando. Back end guys provê - nos algumas API escritas em Java, python (nós não nos importamos) e nós simplesmente escrever uma chamada AJAX, obter nossos dados e adivinha o que ! acabámos. Mas na realidade não é assim tão fácil, se os dados que estamos recebendo não está correto ou há algum erro do servidor, em seguida, ficamos presos e temos que entrar em contato nossos caras de back end por e-mail ou chat(às vezes no whatsApp também :). Isto não é fixe. E se escrevermos a nossa API em JavaScript e chamarmos a essa API do nosso front-end ? Sim, isso é muito fixe, porque se enfrentarmos algum problema na API, podemos investigar. Adivinha ! podes fazer isto agora, como ? - O nó está lá para ti.OK concordou que você pode escrever sua API em JavaScript mas e se eu estiver ok com o problema acima. Você tem alguma outra razão para usar o nodo para a API de descanso ?
Então ... aqui começa a magia. Sim, Tenho Outras razões para usar o node para a nossa API. Vamos voltar ao nosso tradicional sistema de API de descanso, que é baseado em operação de bloqueio ou de rosca. Suponha que dois pedidos simultâneos ocorrem (r1 e r2), cada um deles requer Operação de banco de dados. Então, no sistema tradicional o que vai acontecer:1. Modo de espera : o nosso servidor começa a atender o pedido {[[0]} e espera pela resposta da consulta. após completar o r1
, o servidor começa a serve r2
e faz da mesma maneira. Então esperar não é uma boa ideia porque não temos muito tempo.
2. A forma de Threading: o nosso servidor irá criar dois threads para ambos os pedidos {[[0]} e r2
e servir o seu propósito depois de questionar a base de dados tão arrefecer a sua rapidez.Mas é consumindo memória porque você pode ver que começamos dois threads também aumenta o problema quando ambos os pedidos estão questionando os mesmos dados, então você tem que lidar com o tipo de impasse de problemas . É melhor do que esperar. mas ainda há problemas.
Agora aqui está, como é que o nodo o fará:
3. Nodeway: Quando o mesmo pedido concorrente chegar no node, então ele irá registar um evento com a sua chamada de volta e avançar ele não vai esperar pela resposta da consulta para um determinado request.So quando r1
o pedido vem então o laço do evento do nó (sim, existe um laço do evento no nó que serve este propósito.) registar um evento com a sua função de callback e seguir em frente para servir r2
Pedido e da mesma forma registre seu evento com seu callback. Sempre que qualquer consulta termina, ela despoleta o seu evento correspondente e executa a sua chamada de volta para a conclusão sem ser interrompida.
O meu mais uma razão para escolher o nó.js para um novo projecto é:
Ser capaz de fazer puro desenvolvimento baseado em nuvem
Há algum tempo que uso a Cloud9 IDE e agora não consigo imaginar sem ela, abrange todos os ciclos de vida do desenvolvimento. Tudo o que você precisa é de um navegador e você pode codificar em qualquer lugar em qualquer dispositivo. Você não precisa verificar o código em um computador(como em casa), em seguida, check-out em outro computador(como no local de trabalho).Claro., pode haver IDE baseado em nuvem para outras linguagens ou plataformas (o IDE de Cloud 9 também está adicionando suporte para outras linguagens), mas usando o Node de Cloud 9.o desenvolvimento do js é realmente uma grande experiência para mim.
Mais uma coisa que o node fornece é a capacidade de criar múltiplos instantes v8 do node usando o processo-filho do node( childProcess.fork () cada um requerendo memória de 10mb de acordo com os docs) no momento, não afetando assim o processo principal que executa o servidor. Então descarregar um trabalho de fundo que requer uma enorme carga de servidor torna-se uma brincadeira de criança e podemos facilmente matá-los como e quando necessário.
Tenho usado muito o nó e na maioria das aplicações que construÃmos, preciso de ligações ao servidor em ao mesmo tempo, portanto, um tráfego de rede pesado. Frameworks like Express.js e o novo Koajs (que removeu o inferno de callback) tornaram o trabalho no nó ainda mais fácil.
A usar amianto longjohns...
Ontem o meu tÃtulo com as publicações Packt, programação reactiva com JavaScript . Não é bem um nó.tÃtulo js-centrado; os primeiros capÃtulos são destinados a cobrir a teoria, e mais tarde capÃtulos pesados de código cobrem a prática. Porque eu realmente não pensei que seria apropriado para não dar aos leitores um servidor web, nó.js seemed de longe a escolha óbvia. O caso foi encerrado antes mesmo de ter sido encerrado. oferecer.
Eu poderia ter dado uma visão rosada da minha experiência com o Node.js. Em vez disso, fui honesto sobre pontos bons e pontos maus que encontrei. Deixe-me incluir algumas citações que são relevantes aqui:Aviso: Nó.js e o seu ecossistema estão quentes o suficiente para te queimar mal!
Quando eu era assistente de professor em matemática, uma das sugestões não óbvias que me disseram foi não dizer a um aluno que algo era "fácil"."A a razão era um pouco óbvio, em retrospecto: se você dizer algo às pessoas é fácil, alguém que não vê uma solução pode acabar sensação (ainda mais) estúpido, porque eles não só se não conseguir resolver o problema, mas o problema que eles são estúpidos demais para entender é muito fácil! Existem gotchas que não só irritam pessoas vindas de Python / Django, que imediatamente carregam a fonte se você mudar alguma coisa. Com O Nó.js, o comportamento padrão é que se você fizer uma alteração, a versão antiga continua ativa até o fim dos tempos ou até que você pare manualmente e reinicie o servidor. Este comportamento inapropriado não só irrita Pythonistas, mas também irrita o nó nativo.usuários de js que fornecem vários workarounds. The StackOverflow question " Auto-reload of files in Node.js " tem, no momento desta escrita, mais de 200 upvotes e 19 respostas; uma edição direciona o Usuário para um script de babá, node-supervisor, com página inicial em http://tinyurl.com/reactjs-node-supervisor este problema proporciona aos novos utilizadores uma grande oportunidade de se sentirem estúpidos porque pensaram que tinham resolvido o problema, mas o comportamento dos bugs antigos não mudou. E é fácil esquecer de saltar o servidor; eu fiz isso várias vezes. E a mensagem que eu gostaria de dar é, " não, você não é estúpido porque este comportamento de nó.o js mordeu-te as costas, só que os designers do Node.js não viu qualquer razão para fornecer comportamento aqui. Tente lidar com isso, talvez tendo uma pequena ajuda do supervisor de nódulos ou outra solução, mas por favor não se Vá embora sentindo que você é estúpido. Você não é o único com o problema; o problema está no nó.comportamento padrão do js." Esta secção, depois de algum debate, foi deixada, precisamente porque não quero dar uma impressão de "é fácil"."Corto as mãos repetidamente enquanto faço as coisas funcionarem, e não quero suavizar as dificuldades e preparar-te para acredita no nó.js e seu ecossistema para funcionar bem é uma questão simples e se não é direto para você também, você não sabe o que está fazendo. Se você não encontrar dificuldades desagradáveis usando o nó.js, isso é maravilhoso. Se o fizeres, espero que não te vás embora a sentir: "sou estúpido, deve haver algo de errado comigo."Não és estúpido se experimentares surpresas desagradáveis a lidar com o nodo.js. Não és tu! É o nó.js e seus ecossistema!
Apêndice, que eu realmente não queria depois da insurreição crescendo nos últimos capÃtulos e a conclusão, fala sobre o que eu era capaz de encontrar no ecossistema, e forneceu uma solução para o imbecil literalismo:
Outro banco de dados que parecia perfeito, e ainda pode ser redimÃvel, é uma implementação do lado servidor da loja de valores-chave HTML5. Esta abordagem tem a principal vantagem de uma API que a maioria dos bons desenvolvedores front-end entendem bem o suficiente. Por falar nisso, é também uma API que a maioria dos desenvolvedores de front-end não-tão-bons entendem bem o suficiente. Mas com o pacote node-localstorage, enquanto o acesso de sintaxe do dicionário não é oferecido (você quer usar localStorage.setItem (chave, valor) ou localStorage.getItem( chave), não localStorage [chave]), a semântica de localStorage completa é implementada, incluindo uma quota padrão de 5MB - por quê? Os programadores de JavaScript do lado do servidor precisam de ser protegidos deles próprios?Para capacidades de banco de dados do lado do cliente, uma quota de 5MB por site é realmente uma quantidade generosa e útil de espaço para deixar os desenvolvedores trabalhar com ele. Você poderia definir uma quota muito menor e ainda oferecer aos desenvolvedores uma melhoria incomensurável sobre coxear junto com a gestão de cookies. Um limite de 5MB não se empresta muito rapidamente para o processamento de dados grande cliente-lado, mas há um subsÃdio realmente bastante generoso que os desenvolvedores engenhosos podem usar para fazer muito. Mas por outro lado, 5MB não é um particularmente grande parte da maioria dos discos comprados a qualquer momento, recentemente, o que significa que se você e um site discordam sobre o que é razoável a utilização de espaço em disco, ou algum site é simplesmente hoggish, realmente não custar-lhe muito e você está em perigo de um inundado unidade de disco rÃgido a menos que o seu disco rÃgido já estava muito cheio. Talvez nós estarÃamos melhor se o equilÃbrio fosse um pouco menos ou um pouco mais, mas no geral é uma solução decente para resolver a tensão intrÃnseca para um contexto cliente-lado.
No entanto, pode ser gentilmente indicado que quando você é o único código de escrita para o seu servidor, você não precisa de qualquer proteção adicional de tornar o seu banco de dados mais do que um 5MB tolerável em tamanho. A maioria dos desenvolvedores não precisará nem quer Ferramentas atuando como uma babá e protegê-los de armazenar mais de 5MB de dados do lado do servidor. E a quota de 5MB que é um ato de equilÃbrio dourado no lado do cliente é um pouco bobo em um nó.servidor js. (E, para uma base de dados para múltiplos utilizadores, como está coberto neste apêndice, pode ser apontado, um pouco dolorosamente, que isso não é 5MB por conta do usuário, a menos que você crie um banco de dados separado no disco para cada conta do usuário; que é 5MB compartilhado entre todas as contas do Usuário juntas. Isso pode tornar-se doloroso se se tornar viral!) A documentação afirma que a cota é personalizável, mas um e-mail há uma semana para o desenvolvedor perguntando como mudar a cota está sem resposta, como foi a pergunta do StackOverflow fazendo o mesmo. Unico a resposta que consegui encontrar está na fonte Github CoffeeScript, onde está listada como um segundo argumento inteiro opcional para um construtor. Então isso é fácil o suficiente, e você pode especificar uma cota igual a um disco ou tamanho de partição. Mas além de portar um recurso que não faz sentido, o autor da ferramenta falhou completamente em seguir uma convenção muito padrão de interpretar 0 como significando "ilimitado" para uma variável ou função onde um inteiro deve especificar um limite máximo para alguns recurso. A melhor coisa a fazer com esta má-ordenação é provavelmente especificar que a quota é infinito:
if (typeof localStorage === 'undefined' || localStorage === null)
{
var LocalStorage = require('node-localstorage').LocalStorage;
localStorage = new LocalStorage(__dirname + '/localStorage',
Infinity);
}
Trocar dois comentários por ordem:
As pessoas disparam desnecessariamente no pé constantemente usando JavaScript como um todo, e parte do JavaScript sendo feito linguagem respeitável era um Douglas Crockford dizendo Em essência: "JavaScript como uma linguagem tem algumas partes realmente boas e algumas partes realmente más. Aqui estão as partes boas. Esquece isso. há mais."Talvez o nó quente.js ecosystem will grow itsown "Douglas Crockford," who will say, " The Node.o ecossistema js é um código do oeste selvagem, mas há algumas pedras preciosas reais a serem encontradas. Aqui está um roteiro. Aqui estão as áreas a evitar a qualquer custo. Aqui estão as áreas com alguns dos mais ricos paydirt para ser encontrado em qualquer idioma ou ambiente." Talvez outra pessoa possa encarar essas palavras como um desafio, e seguir a liderança de Crockford e escrever "as partes boas" e / or "the better parts" for Node.js e seu ecossistema. Eu comprava uma cópia! E dado o grau de entusiasmo e as horas de trabalho em todos os projetos, pode ser justificado em um ano, ou dois, ou três, para temperar drasticamente quaisquer observações sobre um ecossistema imaturo feitas no momento desta escrita. Pode realmente fazer sentido em cinco anos dizer, " o nó de 2015.js ecosystem tinha vários campos minados. O Nó 2020.o ecossistema js tem vários paraÃsos."
Se a sua aplicação ligar principalmente apis web ou outros canais io, dar ou receber uma interface de utilizador, nó.js pode ser uma escolha justa para você, especialmente se você quiser espremer para fora a escalabilidade mais, ou, se sua lÃngua principal na vida é javascript (ou transpilers de javascript de sortes). Se construÃres micro-serviços, nó.o js também está bem. No.js também é adequado para qualquer projeto que seja pequeno ou simples.
O seu principal ponto de venda é permitir que os "Front-enders" assumam a responsabilidade por coisas de fundo, em vez da divisão tÃpica. Outro ponto de venda justificável é se sua força de trabalho é javascript orientado para começar. No entanto, para além de um certo ponto, não se pode escalar o código sem terrÃveis falhas para forçar a modularidade, a legibilidade e o controlo do fluxo. Algumas pessoas gostam desses hacks, especialmente vindo de um fundo javascript motivado por eventos, eles parecem familiares ou perdoáveis.Em particular, quando a sua aplicação precisa de executar sincronia flui, você começa a sangrar sobre soluções mal cozidas que o atrasam consideravelmente em termos de seu processo de desenvolvimento. Se você tem partes intensivas em computação em sua aplicação, tread with caution picking (only) node.js. Talvez http://koajs.com/ ou outras novidades aliviam esses aspectos originalmente espinhosos, em comparação com quando eu usei o node.js ou escreveu isto.
Posso partilhar alguns pontos onde & porquê usar o nó js.
- para aplicações em tempo real como o chat,edição colaborativa é melhor ir com nodejs como é a base de eventos onde fire event e dados para clientes do servidor.
- simples e fácil de entender como é a base javascript onde a maioria das pessoas tem idéia.
- a maioria das aplicações web actuais que vão para o angular JS & backbone, com o node é fácil de interagir com o código do lado do cliente, uma vez que ambos irão usar dados json.
- há muitos plugins disponÃveis.
Desvantagens: -
- o nó suportará a maioria das bases de dados, mas o melhor é o mongodb, que não suportará ligações complexas e outras.
- Erros De Compilação...o desenvolvedor deve lidar com cada e todas as exceções de outro modo, se qualquer aplicação de acordo de erro vai parar de funcionar onde novamente precisamos ir e iniciá-lo manualmente ou usando qualquer ferramenta de automação.
Conclusão:- Nodejs melhor para usar em tempo real e simples aplicacao..se você tem uma lógica de negócios muito grande e funcionalidade complexa melhor não deve usar nodejs. Se você quiser construir um aplicativo junto com chat e qualquer funcionalidade colaborativa.. nó pode ser usado em peças especÃficas e permanecer deve ir com a sua tecnologia de conveniência.
O nó é óptimo para protótipos rápidos, mas nunca mais o usaria para nada complexo. Passei 20 anos a desenvolver uma relação com um compilador e tenho saudades disso.
Nó é especialmente doloroso para manter o código que você não visitou por um tempo. Digite informações e compile tempo de detecção de erros são coisas boas. Porquê deitar tudo fora? Para quê? E bolas, quando alguma coisa vai para o sul, a pilha traça muitas vezes completamente inútil.