Mettre en cache des résultats lents sur disque avec FILECACHE
FILECACHE(id, expiration, callback, maker) cherche un fichier en cache pour id. S'il existe et est plus récent que expiration (un texte comme '1 minute'), le callback reçoit son contenu ; sinon il appelle maker(done) pour calculer la valeur, la stocke et la renvoie. Le résultat est sérialisé en JSON. Contrairement à CACHE, il survit aux redémarrages et convient aux gros résultats.
exports.install = function() {
ROUTE('GET /report/', report);
};
var computed = 0;
function report($) {
FILECACHE('monthly-report', '1 minute', function(err, response) {
$.json({ report: response, computed: computed });
}, function(done) {
// The expensive work goes here
computed++;
done(null, { total: 42, generated: computed });
});
}