1

到目前为止,我们的 node.js 项目使用我们构建的一个类 (cache.js),它在内存中保存各种集合。数据访问层用于从逻辑中抽象数据,并允许我们稍后轻松添加持久性。此 dal.js 对所有 CRUD 操作的 cache.js 进行同步调用。

现在时间到了,我想将 MongoDB 连接到 DAL 而不是这个 cache.js。问题是 mongoDB + node.js 的理念是通过回调异步调用数据库。

我们是否应该重新设计我们所有的应用程序(包括使用 DAL 的类)?强制业务逻辑在他们需要的每个 CRUD 上使用回调不是太复杂和错误吗?维护 KISS 的最佳实践是什么(我知道 mongoose 也可以提供帮助,但不能直接提供帮助)?

4

1 回答 1

1

根据您的可扩展性模型,您可以考虑定期同步内存模型。像这样的东西:

var model = {
  x: 5
};

setInterval(function() {
  if (is_model_changed(model)) write_to_db(model); // <-- this can conflict with other changes
  model = read_from_db();
}, 5000);

在这种情况下,您可能应该具有某种形式的服务器关联(每个分片/用户),以便在写入数据库时​​尽可能避免冲突。

于 2012-07-29T14:56:06.110 回答