Javascript 服务器崩溃后重新生成状态
我正在研究一个解决方案,用于在崩溃后重新生成web应用程序的状态。 例如,我的应用程序能够创建发票,并使用idCounter对这些发票进行编号。如果应用程序崩溃,则需要从数据库中提取最后一个invoiceNr并用于重置idCounter 在我的路线模块中,我有如下代码:Javascript 服务器崩溃后重新生成状态,javascript,node.js,Javascript,Node.js,我正在研究一个解决方案,用于在崩溃后重新生成web应用程序的状态。 例如,我的应用程序能够创建发票,并使用idCounter对这些发票进行编号。如果应用程序崩溃,则需要从数据库中提取最后一个invoiceNr并用于重置idCounter 在我的路线模块中,我有如下代码: var idCounter = null; db.invoices.findOne({}, null, {sort: {'invoiceNr': -1}}, function(err, doc) { if (err)
var idCounter = null;
db.invoices.findOne({}, null, {sort: {'invoiceNr': -1}}, function(err, doc) {
if (err) {
return next(err);
}
idCounter = doc.invoiceNr;
});
这很好,但我担心icCounter是通过回调设置的,这意味着理论上用户可以触发一些需要idCounter的代码,比如在触发回调之前创建一个新的发票,因此得到错误的变量
web应用程序崩溃后,您使用何种模式进行状态重新生成?在启动时使用此模式,并且在启动之前,不要初始化可能会创建发票的主应用程序。您不需要在应用程序中维护idCounter。这项工作应该由您的数据库完成。@Bergi:好的,但是如果我的应用程序中没有维护icCounter,我必须在每次创建新发票操作中获取最新发票以获取最新的nr。。。然后,每次创建发票时,我需要两个查询,而不是一个,但您仍然认为这样更好吗?或者我误解了你的意思吗?不,我说你的数据库应该有一个在插入操作中自动创建递增ID的方法。