NodeJS:使用“require”的最有效方法

ter*_*pak 1 node.js

NodeJS 功能的最佳使用方式是什么require?我指的是require声明的位置。如果您需要的话,最好从脚本的开头加载所有依赖项,或者它不会产生任何显着的差异?

这篇文章提供了很多有关require其工作原理的有用信息,但我仍然无法就哪种方法最有效得出明确的结论。

jfr*_*d00 5

假设您在某种服务器环境中使用 Node.js,则该服务器环境通常有以下几点:

  1. 您希望能够快速响应任何给定的请求。
  2. 用于处理请求的代码不应使用同步 I/O操作,因为这会严重降低服务器的可伸缩性。
  3. 服务器启动时间通常不需要优化(在合理范围内),因此如果您要在某处支付初始化成本,通常最好在服务器启动时支付一次。

因此,考虑到require()在模块尚未缓存时使用同步 I/O,这意味着您通常不希望require()在请求处理程序内执行操作。而且,您希望请求处理程序具有快速响应时间,因此require()无论如何您都不希望在处理程序内部进行调用。

所有这些都导致了一个一般的经验法则,即您在启动时将必要的模块加载到模块级变量中,您可以从一个请求到下一个请求重用该变量,并且不会在请求处理程序中加载模块。


除此之外,如果您将所有require()语句放在模块顶部附近的一个块中,它会使您的模块更加自我记录它所依赖的其他模块以及它如何初始化这些模块。如果require()语句遍布代码中,那么开发人员在不进一步研究代码的情况下就很难了解该模块正在使用什么。