0

我在 koa 中使用了一些模块,他们只有这个文档,它是用 koa v1 而不是 v2 编写的。由于我以前从未使用过 v1,所以我不知道如何在 v2 中编写它。

app
  .use(body({
    IncomingForm: form
  }))
  .use(function * () {
    console.log(this.body.user) // => test
    console.log(this.request.files) // or `this.body.files`
    console.log(this.body.files.foo.name) // => README.md
    console.log(this.body.files.foo.path) // => full filepath to where is uploaded
  })
4

3 回答 3

2

从 Koa v1 更改为 Koa v2 是一个非常简单的过程。版本冲突的唯一原因是它使用async函数而不是中间件的生成器。

示例 v1 中间件:

app.use(function* (next) {
  yield next
  this.body = 'hello'
})

示例 v2 中间件:

app.use(async (ctx, next) => {
  await next()
  ctx.body = 'hello'
})

使用async函数而不是生成器,并接受ctx作为参数而不是使用this.

于 2017-07-15T10:12:28.497 回答
0

将 koa2 中的位置更改为function *()koa1中的位置async function(ctx)ctxthis

见: http: //koajs.com/#context

于 2017-07-15T10:08:21.347 回答
0
app
  .use(body({
    IncomingForm: form
  }))
  .use(function(ctx) {
    console.log(ctx.body.user) // => test
    console.log(ctx.request.files) // or `this.body.files`
    console.log(ctx.body.files.foo.name) // => README.md
    console.log(ctx.body.files.foo.path) // => full filepath to where is uploaded
  })
于 2017-08-03T17:56:04.390 回答