Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ajaysinghj8/xdust
https://github.com/ajaysinghj8/xdust
Last synced: 21 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/ajaysinghj8/xdust
- Owner: ajaysinghj8
- Created: 2016-02-03T20:49:34.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2016-06-03T12:29:19.000Z (over 8 years ago)
- Last Synced: 2024-08-09T10:14:25.134Z (3 months ago)
- Language: JavaScript
- Homepage: http://coderajay.github.io/xdust/
- Size: 34.2 KB
- Stars: 14
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# xdust (WIP)
A dust template engine for express framework.
it can be use to fetch templates from multiple sources like -
fileSystem (templates defined under views folder),
databases (Mongo, MySql) and any other place.## USE
> Requiring using common js pattern.
var xDust = require('xdust');
app.engine('dust', xDust(app).__express());
app.set('view engine', 'dust');
> Here app is an Express Application.## Extend
xDust(express_app, reader, redisClient);
> Example reading from mongodb
var mongoReader = {
source: 'db',
read: function(fullPath, templateName, cb){
//reading from defined Template Model
Template.findOne({name,templateName},function(err, doc){
if(err, !doc) return cb(err, doc.body);
return cb(new Error('Template not found!'));
});
}
};
app.engine('dust', xDust(app, [mongoReader,...]).__express());
app.set('view engine', 'dust');
> Define the source as db.response.render('db:xyz');
## Cache> Pass the redisClient in xDust and application will use a centralized caching mechanism. Which may help you in clearing cache in scalable Architecture.
Todo so, you can use followings
xDust().cache.flushAll(optionalCallBack);
or
xDust().cache.flush('key',optionalCallBack);
## TODOs* ~~Cache~~
* ~~Caching of compiled template inside dust.~~
* ~~Caching of template strings read from sources.~~
* Performance
* Tests