如何使用mongoose / node避免深层嵌套代码?

时间:2013-05-26 21:36:01

标签: node.js mongoose

我正在努力提高使用大量mongooose的biggish nodejs应用程序的可读性。问题是,在很多依赖查询的情况下,回调都会失控。

处理此问题的做法是什么?

1 个答案:

答案 0 :(得分:2)

您的问题有三种常见的解决方案。

第一个是async.js lib。

第二个是使用Promises。 node.js中有多个promises实现。我知道三个实现:

第三个是使用Fibers。有fibers promise库为您完成所有棘手的工作。

之前有很多类似的问题。例如,check this one

所有这些库都做同样的事情 - 它们使node.js异步代码非常可读。所以,只需选择一个看起来更简单的。

至于我,我更喜欢async.js lib。

更新: mongoose.js有自己的内置承诺 - mpromise。您可以mongoose.promise访问它。但是,只要您在exec()中的查询上调用mongoose函数,它就会返回一个承诺。除了mongoose.js之外,我从未真正使用REPL承诺,但您可以尝试一下。