У меня есть приложение Koa v2 с koa-views@next
в качестве рендерера и nunjucks
шаблонизатором. Вот моя рабочая установка, у которой нет никаких проблем, я просто запутался с двойным объявлением папки views
:
const Koa = require('koa');
const nunjucks = require('nunjucks');
const path = require('path');
const router = require('koa-router')();
const views = require('koa-views');
const app = new Koa();
const index = require('./routes/index');
app.use(views(path.join(__dirname, 'views'), {
extension: 'njk',
map: { njk: 'nunjucks' },
}));
nunjucks.configure(path.join(__dirname, 'views'), {
autoescape: true,
});
router.use('/', index.routes(), index.allowedMethods());
app
.use(router.routes())
.use(router.allowedMethods());
app.listen(3000);
Но если я этого не сделаю, рендеринг не будет работать. Если я раскомментирую блок nunjucks.configure
, я получаю следующую ошибку:
Template render error: (unknown path)
Error: template not found: layout.njk
Есть ли проблема с моей настройкой?
nunjucks.configure(..., {express: app, autoescape: true})
. - person Aikon Mogwai   schedule 29.11.2016app.set is not a function
ошибку вapp.set('view', NunjucksView);
в файлеnode_modules\nunjucks\src\environment.js:288
. Я думаю, что это просто оболочка дляExpress
приложений, а не дляKoa
. - person Lanti   schedule 29.11.2016