node-staticize
Router staticize for express
SUPPORTS:
USE:
Cache:
- api result
- api view/render
Install
npm install node-staticize
Example
To use staticize in you module, simply import it:
var Staticize = require('staticize');
And set it (use memory or redis or others):
var staticize = new Staticize({
cache : {
adapter: 'redis',
options: {
host: '127.0.0.1',
port: '6379'
}
},
routes: {
'/cache2s' : 2,
'get /cache3s': 3,
'post /cache3s': 3,
'get /foo/:bar': 5,
'/cacheCors': {
ttl: 3,
cors: 'http://yoursite.com'
},
'/cacheCorsForAll': {
ttl: 3,
cors: '*'
}
}
});
Then you can create a middleware:
staticize.cacheMiddleware()
Use it:
app.use(staticize.cacheMiddleware());
app.use('/cache4s', staticize.cacheMiddleware(4));
app.use('/cacheCors', staticize.cacheMiddleware({ ttl: 3, cors: '*' }));
app.get('/*', function (req, res) {
res.json({
time: new Date().toLocaleString()
});
});
app.listen(3000);
...
module.exports = staticize.cacheMiddleware(30);
...
...
'StaticizeController': {
'test30s': ['staticize']
}
...
new Staticize(options)
options.cache
cache config, include:
options.cache.adapter
: type string
, such as memory
redis
...options.cache.options
: type object
, if not use memory
adapter, need to connect to Adapter, for example:
{
...
cache: {
adapter: 'redis',
options: {
host: '127.0.0.1',
port: 6379
}
}
...
}
if given an unsupported adapter
would throw a TypeError
:
throw new Error('Unsupported cache adapter: ' + adapter);
[options.routes]
object
, key
is 'uri'
or '${http method} uri'
, value
is cache seconds.
- When
staticize.cacheMiddleware(30)
with a ttl
, staticize will use this ttl
and NOT search in option.routes
. - When
staticize.cacheMiddleware()
with no ttl
, staticize will search in option.routes
:
- First search the
'uri' key
, found and return; - Then search the
'${http method} uri' key
, found and return; - if not, return 0.
API
.cacheMiddleware(cacheTTL, skip, fn)
cacheTTL
is cache seconds.[skip]
is a RegExp, if req.originalUrl.match(skip)
, goto next()
.fn
is a function of using req
to create a extension string adding to cache key.
Test
Run npm test
.
Debug
Using debug.
LICENSE
MIT