We've just released a module that kicks in automatically and provides caching when an Express route is hit by more than one visitor simultaneously:
https://github.com/punkave/express-cache-on-demand This is a new approach to caching. Rather than holding on to the data for an arbitrary amount of time, we simply deliver the same data to any visitors who arrive during the period of time we're generating a response for the first user. After that's done, when a new request arrives, we let the route generate a new response. So the content is always timely, and yet the server is never overwhelmed. This middleware is intended for routes that do a lot of work, then deliver a response under 1MB or so. Rendering a web page after fetching lots of related data from different sources is a perfect example. "Should I apply this to my entire site?" No. This middleware is NOT intended - and will NOT work - for responses that call res.sendFile(), or pipe data into "res". Generally speaking, these kinds of responses don't do a lot of work up front, and you did it this way to avoid holding something big in memory. So just don't apply the middleware to routes of that kind. The middleware is smart enough to automatically skip the cache if a user is logged in (req.user exists), or their session doesn't look empty, or the request is not a GET or HEAD request. Looking forward to your feedback! -- Job board: http://jobs.nodejs.org/ New group rules: https://gist.github.com/othiym23/9886289#file-moderation-policy-md Old group rules: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines --- You received this message because you are subscribed to the Google Groups "nodejs" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/nodejs/f01b2b38-6670-4b8a-9c79-0209448cf77e%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
