Это именно то, о чем говорит проблема: ctx.body is not a function
Из документов:
Объект отклика Koa - это абстракция поверх ванильного объекта отклика узла
Response aliases
The following accessors and alias Response equivalents:
ctx.body
ctx.body=
То есть, по сути, ctx.body
- это объект, которому вы назначаете что-либо для отправки в качестве ответа.
Если вы посмотрите на пример Hello World
, ответ просто присваивается объекту Response
, который затем отправляет koa
.
app.use(async ctx => {
ctx.body = 'Hello World';
});
Таким образом, если изменить код на следующий, тело ответа будет json
function getHandler (ctx, next) {
// ctx.set('Location', 'http://localhost:3000/foo')
ctx.body = { foo: 'bar' };
}