我正在为崩溃后的网络应用程序的“状态重新生成”解决方案。 例如,我的应用程序可以创建发票,并使用idCounter来编号这些发票。如果应用程序崩溃,则需要从数据库中提取最后一个invoiceNr并用于重置idCounter。
在我的路由模块中,我的代码如下所示:
var idCounter = null;
db.invoices.findOne({}, null, {sort: {'invoiceNr': -1}}, function(err, doc) {
if (err) {
return next(err);
}
idCounter = doc.invoiceNr;
});
这很好用,但是我担心icCounter被设置为回调,这意味着(理论上)用户可以触发一些需要idCounter的代码(比如创建新发票)在触发回调之前,因此得到错误的变量......
在网络应用崩溃后,您使用什么样的模式进行“状态恢复”?