全面披露:我对完全异步模型非常陌生。
在我的应用程序中,有许多实例需要将信息提交到数据库,但应用程序可以在不知道结果的情况下继续运行。在等待数据库写入完成之前呈现页面是否可以接受?
是的。例如:
app.get('/', function(req, res, next) {
res.jsonp({
message: 'Hello World!'
});
var i = 0;
while (true) {
i++;
}
});
当用户访问'/'时,他会立即看到结果。但是如果只有一个节点实例在运行,当其他用户访问'/'时,他不会收到任何响应,因为唯一的实例处于无限循环中。
如果您有很多繁重的工作要做(例如,受 CPU 限制的工作),最好使用 MSMQ 和 AMQP 等消息队列,而不是在节点实例中完成所有工作。
当然。但是,如果确实出现问题,您将如何通知用户错误?除非您正在使用套接字或 ajax 或其他东西,否则请求是标准方式。