Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Koajs如何发送json响应_Node.js_Koa - Fatal编程技术网

Node.js Koajs如何发送json响应

Node.js Koajs如何发送json响应,node.js,koa,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错误(我假设这是因为路由器.post立即

我有一段代码:

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错误(我假设这是因为
路由器.post
立即返回,不等待回调。我如何从回调内部产生响应,从而不会得到404。

我不知道如何编写用户模型。但不应该在这里使用回调。在正常函数中也不能产生回调

如果您没有
app.on('error')
,这应该可以工作。如果您没有
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
  }
})