如何避免使用mongoose / node的深度嵌套代码



我正在努力提高一个使用大量猫鼬的大型nodejs应用程序的可读性。问题是,对于大量的依赖查询,回调会失去控制。

处理这个问题的做法是什么?

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

第一个是async.js lib.

第二个是使用Promises。在node.js中,承诺的实现不止一种。我知道三种实现:

    <
  • 节点承诺/gh>
  • 誓言
  • <
  • 问承诺/gh>

第三种方法是使用纤维。有一个纤维承诺库可以为你做所有棘手的工作。

之前有很多类似的问题。例如,检查这个

所有这些库都做同样的事情——它们使node.js异步代码变得漂亮和可读。所以,选择一个对你来说更简单的。

对于我来说,我更喜欢async.js lib。

更新: mongoose.js有自己内置的promise - mpromise。可以使用mongoose.promise访问。但是每当你在mongoose的查询上调用exec()函数时,它会返回一个承诺。我从来没有真正使用mongoose.js的承诺,除了REPL,但你可以给它一个尝试。

最新更新