Question
Comment puis-je stocker des données à utiliser pour tous les clients de mon serveur? (Comme les messages d'une conversation)
La solution
Le serveur qui Node.js permet de construire, est un serveur d'application, ce qui signifie que l'état est conservé, entre la demande, du côté du serveur. L'extrait suivant illustre ceci:
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/');
Autres conseils
Si vous voulez plus de fonctionnalités ont un regard sur Redis-noeud-client
Ou utiliser un mécanisme de stockage de noeud natif (écrit en Node.js)
nœud-cache package est actuellement le meilleur pour le magasin de valeur clé et permet synchrone ainsi que le stockage async / récupération / suppression de clés.
J'ai écrit Bx à cet effet; il vous donne d'un simple cache en mémoire avec:
- Stockage valeur clé
- expiration en option sur toutes les données stockées
- Prise en charge des schémas utilisant JSON-schéma
Bien que je brancher mon propre dépôt ici, je peux vous assurer qu'il fonctionne bien et il a été utilisé dans la production à ma propre entreprise, Onshape depuis plus d'un an sans problèmes. A la fin de la journée, il est un outil assez simple; pas grand chose à gâcher ici.
Cependant, si vous stockez des données qui est censé être permanent vous allez avoir une base de données tels que MongoDB (w / Mongoose) , MySQL , etc. plutôt que d'un cache comme Bx ou < a href = "https://www.npmjs.com/package/redis" rel = "nofollow"> Redis .