我从res.send()
使用 express 框架中得到了一些奇怪的行为。
这是我的功能:
user.register(function(err, result) {
console.log(JSON.stringify(err || result));
res.send(JSON.stringify(err || result));
});
它要么接收错误,要么接收结果对象。以下是来自的示例console.log()
:
{"name":"AuthError","message":"Password confirmation does not match original password","code":36}
但是客户端收到的响应是:
{"name":"AuthError","message":"Password confirmation does not match
我收到的任何错误都会发生这种情况。我不明白为什么会发生这种情况,因为我只是试图发送一个简单的 JSON 字符串。谁能告诉这可能的原因是什么?
编辑:我已经解决了这个问题,但如果有人能解释它背后的原因,我将不胜感激。
user.register()
每当发生错误时,我都忘记退出该函数,尽管如此,它仍继续查询数据库。一旦我确定该函数已正确退出,就会收到完整的响应......但这可能是什么原因?
是因为res.send()
在第一个完成之前调用了多个 where(user.register()
如果我没有正确退出,该函数会进行多个回调调用)?控制台中没有记录异常。