addisonj / node-cacher

Distributed HTTP caching backed by memcached and implemented via middleware
48 stars 16 forks source link

Any chance we can use this with Browsersync as a Middleware? #31

Open vviikk opened 7 years ago

vviikk commented 7 years ago

You can see that it can accept any connect compatible middlewares...

I am trying to implement it as a global, route-less middleware.

https://browsersync.io/docs/options#option-middleware

I added it as a middleware, but I'm getting a TypeError: res.header is not a function

at setHeaders (/Users/.../Sites/sample-site/node_modules/cacher/lib/Cacher.js:166:7)

I used it like:


 middleware: [
      (new cacher()).cache('seconds', 3000),
     // other working middlewares
]
addisonj commented 7 years ago

res.header is part of express's API, but there isn't any reason we couldn't use res.setHeader which is part of the node.js response class. I would totally take a PR for that.

Otherwise, you could simply create a little middleware that adds the method onto your request and response:

function addHeaderMiddleware(req, res, next) {
  req.header = function(n) {
   ...
  }
  res.header = function(n, v) {
    res.setHeader(n, v)
  } 
}

And then you should be working fine. Hope that helps!

vviikk commented 7 years ago

:) I will try this today and get back to you. Thanks a bunch!