https://github.com/magicdawn/koa-generic-views
koa generic views
https://github.com/magicdawn/koa-generic-views
Last synced: 3 months ago
JSON representation
koa generic views
- Host: GitHub
- URL: https://github.com/magicdawn/koa-generic-views
- Owner: magicdawn
- License: mit
- Created: 2015-04-28T14:37:31.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2017-05-30T16:14:35.000Z (about 9 years ago)
- Last Synced: 2024-11-16T16:07:20.441Z (over 1 year ago)
- Language: JavaScript
- Size: 25.4 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: readme.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# koa-generic-views
> generic view interface for koa
[](https://travis-ci.org/magicdawn/koa-generic-views)
[](https://codecov.io/gh/magicdawn/koa-generic-views)
[](https://www.npmjs.com/package/koa-generic-views)
[](https://www.npmjs.com/package/koa-generic-views)
[](http://magicdawn.mit-license.org)
## Install
```sh
npm i koa-generic-views --save
```
## API
```js
var views = require('koa-generic-views');
views(app,options);
```
### Options
- viewRoot: set the root path
- defaultExt: set the default extension
- cache: when final locals don't have `cache` field, get cache flag from `opts.cache`, then get cache from `process.env.NODE_ENV`
## Example
```js
var koa = require('koa');
var app = koa();
var jade = require('jade');
require('koa-generic-views')(app,{
defaultExt: 'jade'
});
// reutrn plain values
app.engine('jade', function(view,locals){
return jade.renderFile(view, locals) // sync render, do not use in production
});
// or Promise
app.engine('jade',function(views,locals){
return new Promise(function(resolve,reject){
jade.renderFile(views,locals,function(err,res){
if(err){
return reject(err);
}
resolve(res);
})
})
});
// or simply use bluebird, Promise.promisify
var Promise = require('bluebird');
app.engine('jade',Promise.promisify(jade.renderFile,jade));
app.use(ctx => {
return this.render('template');
});
```
app.engine('ext',engine);
engine should return a value or a Promise
so use `Promise.promisify` with bluebird is also supported.
## Why
why not [koa-views](https://github.com/queckezz/koa-views)?
koa-views -> [co-views](https://github.com/tj/co-views) -> [co-render](https://github.com/tj/co-render)
-> [consolidate.js](https://github.com/tj/consolidate.js)
Any engine not supported in consolidate need to PR to consolidate.I hate centerlized.
## Changelog
[CHANGELOG.md](CHANGELOG.md)
## License
the MIT License http://magicdawn.mit-license.org