我有这段代码:
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。
答案 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
}
})