关于koa-router新版本写法问题

来源:7-3 第七天 兼容PC注册登录和首页(下)

vincents

2017-12-04

拿到老师给的代码,在本地可以愉快的跑起来,可是用到的koa-router是4.0.0版本的,写法是:

exports.index = function *(next) {

  var categories = yield Movie.findAll()

  yield this.render('pages/index', {

    title: '微信电影课程首页-[imooc]',

    categories: categories

  })

}

当koa-rouer更新到7.11.1版本时,官方给的写法也不一样。我尝试的修改下,结果跑不起来,官方实例:

router.get('/', function (ctx, next) {

    ctx.body = 'Hello World!';

  })

Movie.findAll方法是老师给的新版本写法:

exports.findAll = async (ctx, next) => await Category

  .find({})

  .populate({

    path: 'movies',

    select: 'title poster',

    options: { limit: 6 }

  })

  .exec()

完全不懂得怎么修改路由写法,老师可以在自己的项目里面,把koa-router升级到7.11.1,然后再修改下,求思路啊,yeild替换成await完全不管用,还会报错,老师有空帮忙解决下哈~

写回答

1回答

Scott

2017-12-08

7.11.1 的 router 需要 koa 也升级到 koa2 才能跑起来。


exports.index = function *(next) {
  var categories = yield Movie.findAll()
  yield this.render('pages/index', {
    title: '微信电影课程首页-[imooc]',
    categories: categories
  })
}


改成


exports.index =  async (ctx, next) => {
  var categories = await Movie.findAll()
  await ctx.render('pages/index', {
    title: '微信电影课程首页-[imooc]',
    categories: categories
  })
}


试试看

0
0

7天搞定Node.js微信公众号

Koa框架、ES2015新特性、MongoDB,开发微信公众号

1742 学习 · 787 问题

查看课程