Какой рекомендуемый код для koa-ejs с использованием koa2?

Я планировал использовать ejs в koa2, мои коды были примерно такими:

render(app, {
  root: path.join(__dirname, 'views-ejs'),
  layout: 'layout',
  viewExt: 'ejs',
  cache: false,
  debug: true
});

app.use(function *() {
  yield this.render('index',{
    title: 'koa2 title',
    viewClass: 'landing',
    targetAuthLevel:'',
    authorizationLevel:'6',
    ngController: 'landingController'
  });
});

Но я получаю предупреждение ниже, не могли бы вы сказать мне, какие коды рекомендуются? пожалуйста.

koa deprecated Поддержка генераторов будет удалена в v3. См. в документации примеры того, как преобразовать старое ПО промежуточного слоя https://github.com/koajs/koa/tree/v2.x#old-signature-middleware-v1x


person xinshouke    schedule 02.05.2016    source источник
comment
Если вы используете Koa 2, вы должны переключиться с функций генератора на использование async/await. Вы можете узнать больше об этом, перейдя по ссылке, которая была размещена в этом предупреждении.   -  person Saad    schedule 02.05.2016


Ответы (2)


Согласно README:

Временное решение для Koa 2

npm install co --save

Затем...

import co from 'co';
import render from 'koa-ejs';

render(app, options);
app.context.render = co.wrap(app.context.render);

app.use(async (ctx, next) => {
    await ctx.render(view, locals);
});
person Lee Benson    schedule 09.05.2016

Вы можете избежать этой ошибки, обновив koa-ejs до «следующей» версии:

$ npm rm -S koa-ejs
$ npm i -S koa-ejs@next
  • rm псевдоним для команды remove
  • i псевдоним для команды install
  • -S псевдоним для --save ключа
person Астанин Борис    schedule 28.07.2016