2010-02-08 7 views

Répondre

19

Le serveur que node.js vous permet de construire, est un serveur d'application, ce qui signifie que l'état est préservé, entre les requêtes, côté 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/'); 
+0

Cet exemple me montre: le nombre est 0, le nombre 2, le nombre 4, le nombre 6, etc. très très fiable. Personne d'autre ne visite. Hébergé sur nodester.com. Une idée de ce que ça veut dire ?! –

+9

@Thomas David Baker, oui, le navigateur fait une demande supplémentaire pour favicon.ico. J'ai modifié l'extrait pour prendre en charge la dernière version du noeud et enregistrer la méthode de requête et l'URL dans la console. Jetez un coup d'oeil maintenant. Il devrait montrer quelque chose comme 'GET/favicon.ico' entre chaque autre demande. –

+0

Combien d'états seront conservés? Y a-t-il une valeur pour laquelle je peux le définir? – user482594

2

node-cache package est actuellement le meilleur pour stocker des valeurs clés et il permet synchrone ainsi que le stockage/récupération/suppression asynchrone des clés.

npm link

-2

j'ai écrit Bx à cette fin; 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 suis brancher mon propre dépôt ici, je peux vous assurer que cela fonctionne bien et il a été utilisé dans la production de ma propre entreprise, Onshape depuis plus d'un an sans problèmes. À la fin de la journée, c'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 qu'un cache comme Bx ou Redis.

+0

le repo n'a aucun exemple et le site est indisponible – Tony