Mongoose.js挂钩和他们的荣耀

因为在编程世界中“时间就是金钱”

作者:Dror Cohen — CTO和首席开发人员

这篇文章旨在演示将工作时间和大量代码减少到最小的方法。 我将专注于服务器端开发,并假设您熟悉MongoDB和Node.js,并且很可能已经在Mongoose上工作了。 我想演示的是Mongoose.js鲜为人知的功能-Hooks,以及它如何节省您的工作时间。

证明事前和事后有效性的最佳方法可能是通过示例。 在开发某个应用程序时,我和我的团队想监视与用户相关的特定操作,创建用于审核和取证的用户日志。 我们想要这样做而不必手动搜索代码。 这是一个非常具体但基本的需求,可能会花费我大量的工作和人力,这是我自然希望避免的事情。

这是钩子进入图片的地方。 我们定义的钩子捕获整个应用程序中对用户数据进行的每次更新。 然后,它会根据您的定义和预定义的白名单记录所有相关的更改。 就我而言,我将模式中的所有相关属性归为一个名为status的子模式,但是如果需要,可以通过任何其他方式将相关属性列入白名单。 这花了我大约5分钟的时间。

确实,关于钩子的最好的部分是它们使维护应用程序变得简单。 使用这种方法,新的程序员可以开始进行项目开发,并且即使他们不知道钩子的存在,一切仍然可以工作。 作为项目负责人,这是极具成本效益的-挂钩使您可以轻松定义横向动作,而无需花费大量时间进行编码。

这可能不言而喻,但是挂钩对于解决很大范围的需求至关重要-监视对用户数据进行的特定更新只是一个示例。 我强烈建议您尝试一下,因为-正如任何主要开发人员或项目经理所知,“时间就是金钱”。