koa2 模板引擎模块 koa-views 的使用

我通过koa-generator脚手架构建一个项目用于学习koa2,
现遇到的问题是脚手架官配koa-views,虽说支持很多模板引擎,但没有指出那些模板引擎的高级用法该怎么做?
代码如下:

var app = require('koa')()
  , koa = require('koa-router')()
  , logger = require('koa-logger')
  , json = require('koa-json')
  , views = require('koa-views')
  , onerror = require('koa-onerror');

var index = require('./routes/index');
var users = require('./routes/users');

// 就像这里:用的是handlebars模板,但是我该怎么使用handlebars的partial,helpers,layout呢?
// 如果换成 swig 或者 其他又如何弄?
// 又如做一个站点,有些可以共用一个layout,有些不能共用,例如登录页和首页一般头部尾部不一样,就不能共用一个layout,这又怎么解决?
app.use(views('views', {
  root: __dirname + '/views',
  default: 'hbs',
  map: { hbs: 'handlebars' }
}));
app.use(require('koa-bodyparser')());
app.use(json());
app.use(logger());

app.use(function *(next){
  var start = new Date;
  yield next;
  var ms = new Date - start;
  console.log('%s %s - %s', this.method, this.url, ms);
});

app.use(require('koa-static')(__dirname + '/public'));

// routes definition
koa.use('/', index.routes(), index.allowedMethods());
koa.use('/users', users.routes(), users.allowedMethods());

// mount root routes  
app.use(koa.routes());

app.on('error', function(err, ctx){
  logger.error('server error', err, ctx);
});

module.exports = app;

为什么koa2的官方文档这么简(Jian)单(lou)

阅读 17.9k
3 个回答

@hsfzxjy 说的在理,关于Koa的模版引擎,留给你自己,爱使用那个就用那个,各模板引擎都有安装方法和api,结合这些,自己想怎么整合就怎么整合!当初我也郁闷这个呢,后来自己安装了Pug,按照api,搞了个简单的挂进去!

实在不会,看看这个吧co-views,Koa官方例子就用的这个!

去那些模板引擎的官网看

koa 像是一个盒子,盒子没有义务解释盒子里放的东西的用法

请问你的问题解决了吗。我也不知道怎么配置hbs的defaultLayout

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题