1.1.2 • Published 9 years ago
node-staticize v1.1.2
node-staticize
Router staticize for express
SUPPORTS:
USE:
Cache:
- api result
- api view/render
Install
npm install node-staticizeExample
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, // default GET method
'get /cache3s': 3,
'post /cache3s': 3,
'get /foo/:bar': 5, // match /foo/whatever
'/cacheCors': {
ttl: 3,
cors: 'http://yoursite.com' // allow 'http://yoursite.com' CORS access
},
'/cacheCorsForAll': {
ttl: 3,
cors: '*' // "*" to allow all domains CORS access
}
}
});Then you can create a middleware:
staticize.cacheMiddleware() // set cache seconds, default 0 to skipUse it:
- expressjs:
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);- sailsjs:
// create a staticize.js under /policies
...
module.exports = staticize.cacheMiddleware(30);
...
// set it in policies.js
...
'StaticizeController': {
'test30s': ['staticize']
}
...new Staticize(options)
options.cache
cache config, include:
options.cache.adapter: typestring, such asmemoryredis...options.cache.options: typeobject, if not usememoryadapter, 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 attl, staticize will use thisttland NOT search inoption.routes. - When
staticize.cacheMiddleware()with nottl, staticize will search inoption.routes:- First search the
'uri' key, found and return; - Then search the
'${http method} uri' key, found and return; - if not, return 0.
- First search the
API
.cacheMiddleware(cacheTTL, skip, fn)
cacheTTLis cache seconds.[skip]is a RegExp, ifreq.originalUrl.match(skip), gotonext().fnis a function of usingreqto create a extension string adding to cache key.
Test
Run npm test .
Debug
Using debug.
LICENSE
MIT