Expressjs / node.js相当于在PHP中的退出()

我使用Expressjs w / node.js,我有这样的路线:

users.init(app.db, function() { users.checkUsername(user.username, function(err, count) { if (count > 0) { res.json({'username': 'unavailable'}); } }); users.checkEmail(user.email, function(err, count) { if (count > 0) { res.json({'email': 'unavailable'}); } }); users.insertUser(user, function(err, response) { res.json({'success' : 'true'}); }); }) 

在某些情况下,这将打印发送多个回复,用户名和电子邮件。

这条路线被称为通过ajax,在PHP中,我通常做一个exit()后,我回声一个JSON响应。 有没有办法做到这一点Expressjs?

谢谢!

编辑:我可以包装一切在if / else或在每个内部设置一个标志,但只是看看是否有一个更elegent的方式。

你不能用res.json来做“多重响应”(不pipe是什么意思) – 每次你使用它时,它都会把数据发送给客户端并且完成响应。 您需要将结果保存(并更新)为一个variables,并在最后发送。

现在我可以为你考虑两种可能性:

  • 嵌套的callback实际上很烦人,但有时是必要的(例如,如果第二个调用取决于第一个调用);

  • asynchronouscallback队列在callback中,检查是否每个其他callback都完成了这个工作。 如果是这样做的回应。 这可能是一个棘手的实现它自己,所以尝试例如一个优秀的asynchronous库。