Koajs如何发送json响应

时间:2016-04-16 05:56:07

标签: node.js koa

我有这段代码:

router.post('/register', function *(next) {
  User.create(this.request.body, function(err, data) {
    this.type = 'json';
    if (err) {
      return this.body = err;
    }
    return this.body = data;
  });
});

但是我得到了404错误(我假设它是因为router.post立即返回并且不等待回调。我怎样才能从回调内部产生响应以便我不要得到404。

1 个答案:

答案 0 :(得分:0)

我不知道您是如何编写用户模型的。但是你不应该在这里使用回调。并且你也不能在正常的功能中屈服。

如果您没有app.on('error'),这应该有效。如果这样做,您可以删除try catch块并只有this.body = yield User.create(this.request.body)

router.post('/register', function *(next) {
  try {
    this.body = yield User.create(this.request.body)
  } catch (err) {
    this.body = err
  }
})