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.
Algumas das fontes que tenho os que se cruzam são:

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?

Author: Was, 2011-02-21

17 answers

Fizeste um óptimo trabalho a resumir o que é fantástico no nodo.js. O meu sentimento é esse nó.js é especialmente adequado para aplicações onde você gostaria de manter uma conexão persistente do navegador de volta para o servidor. Usando uma técnica conhecida como "sondagens longas", pode escrever uma aplicação que envia actualizações ao Utilizador em tempo real. Fazer uma longa sondagem sobre muitos dos gigantes da web, como o Ruby on Rails ([3]} ou o Django ([6]}, criaria uma enorme carga no servidor., porque cada cliente activo consome um processo de servidor. Esta situação equivale a um ataque tarpit. Quando se usa algo como nó.js, o servidor não tem necessidade de manter threads separados para cada conexão aberta.

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.

 1359
Author: Benson, 2014-05-14 15:56:33
Eu acredito no nó.js é mais adequado para aplicações em tempo real: Jogos online, ferramentas de colaboração, salas de chat, ou qualquer coisa onde um usuário (ou robô? ou sensor?) faz com a aplicação precisa ser visto por outros usuários imediatamente, sem uma atualização de página.

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.
 410
Author: fisherwebdev, 2011-02-21 06:43:31

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.

Adoro os NodeJS, é rápido, Selvagem e divertido, mas preocupa-me que tenha pouco interesse em correcção provável. Esperemos que possamos fundir o melhor de ambos os mundos. Estou ansioso para ver o que vai substituir Nodo no futuro... :)
 209
Author: joeytwiddle, 2017-05-23 10:31:35

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.

 208
Author: stewe, 2014-03-14 18:20:25

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.
  1. nó.js foi fácil de configurar.
  2. 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.

 127
Author: Joonas, 2014-03-14 18:23:57

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.
O que esperar ... Quem a usa?
  • PayPal, Netflix, Walmart, LinkedIn, Groupon, Uber, GoDaddy, Dow Jones
  • Eis porque mudaram para o nó .
 105
Author: Tony O'Hagan, 2016-08-16 10:14:20
Não há nada como uma bala de prata. Tudo vem com algum custo associado com ele. É como se comesses comida oleosa, comprometerias a tua saúde e a comida saudável não vem com especiarias como comida oleosa. É uma escolha individual se querem saúde ou especiarias como na sua comida. Nodo da mesma maneira.js considerar ser usado em um cenário específico. Se o seu aplicativo não se encaixa nesse cenário, Você não deve considerá-lo para o seu desenvolvimento app. Estou só a pensar no ... o mesmo:

Quando usar o nó.JS

  1. 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.
  2. 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

  1. o seu pedido do servidor depende do consumo pesado de CPU algoritmo / trabalho.

Consideração de escalabilidade com nó.JS

  1. 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.

 60
Author: ajay, 2016-08-13 18:46:35

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.

 41
Author: BoxerBucks, 2013-06-06 17:42:29

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.
Lembra-te que estou a ser picuinhas. Para servidores de arquivos estáticos, o apache é melhor principalmente porque está amplamente disponível. A comunidade nodejs tem crescido e amadurecido ao longo dos anos e é seguro dizer nodejs pode ser usado em quase todos os lugares se você tiver sua própria escolha de hospedagem.
 37
Author: shash7, 2014-09-12 13:07:38

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/
 30
Author: Vinayak Bevinakatti, 2015-12-17 17:01:42

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.

Então, não há espera, não há rosca, não há consumo de memória-SIM, esta não é a maneira de servir a API de descanso.
 20
Author: Anshul, 2015-01-16 21:00:15

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.

 16
Author: Sean Zhao, 2014-02-18 08:14:59

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.

 15
Author: I_Debug_Everything, 2014-06-08 14:27:17

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."
 15
Author: JonathanHayward, 2015-09-04 12:15:48

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.

 9
Author: matanster, 2015-03-18 21:41:27

Posso partilhar alguns pontos onde & porquê usar o nó js.

  1. 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.
  2. simples e fácil de entender como é a base javascript onde a maioria das pessoas tem idéia.
  3. 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.
  4. há muitos plugins disponíveis.

Desvantagens: -

  1. o nó suportará a maioria das bases de dados, mas o melhor é o mongodb, que não suportará ligações complexas e outras.
  2. 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.

 -2
Author: BEJGAM SHIVA PRASAD, 2016-08-09 15:02:47
  1. 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.

  2. 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.

 -3
Author: mbert65, 2015-01-06 10:45:25