Pergunta

Como armazeno dados para serem usados ​​por todos os clientes do meu servidor?(como as mensagens de um chat)

Foi útil?

Solução

O servidor que o node.js permite construir é um servidor de aplicativos, o que significa que o estado é preservado, entre solicitações, no lado do servidor.O trecho a seguir demonstra isso:

var sys  = require('sys'),
    http = require('http');

var number = 0;

http.createServer(function (req, res) {
        console.log(req.method, req.url);

        res.writeHead(200, {'Content-Type': 'text/html'});
        res.write('<h1>Number is: ' + number + '</h1>');
        res.end();

        number++;

}).listen(8000);

sys.puts('Server running at http://127.0.0.1:8000/');

Outras dicas

Se você quiser mais recursos, dê uma olhada em redis-nó-cliente

Ou use um mecanismo de armazenamento de nó nativo (escrito em node.js)

http://github.com/felixge/node-dirty

cache de nó O pacote é atualmente o melhor para armazenamento de valores de chave e permite armazenamento/recuperação/exclusão síncrona e assíncrona de chaves.

link npm

escrevi Bx para este fim;fornece um cache simples na memória com:

  • Armazenamento de valor-chave
  • Expiração opcional em quaisquer dados armazenados
  • Suporte para esquemas usando esquema JSON

Embora eu esteja conectando meu próprio repositório aqui, posso garantir que ele funciona bem e tem sido usado em produção na minha própria empresa, Em forma por mais de um ano sem problemas.No final das contas, é uma ferramenta bastante simples;não há muito o que bagunçar aqui.

No entanto, se você estiver armazenando dados que devem ser permanentes, você vai querer um banco de dados como MongoDB (com Mongoose), MySQL, etc.em vez de um cache como Bx ou Redis.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top