require()正在按需加载。加载模块后,如果再次运行require()调用,则不会重新加载模块。通过将其放入函数而不是顶层模块代码中,可以延迟其加载,或者如果您从未实际调用该函数,则可以避免加载。但是,由于
require()是同步的并从磁盘加载模块,因此最佳实践是在应用程序启动服务请求之前先加载应用程序启动时需要的任何模块,然后确保在应用程序运行时仅发生异步IO。
节点是单线程的,因此加载模块的内存占用不是按连接进行的,而是按进程进行的。一次性加载模块即可将其存入内存。
只需遵守此处的约定,并在开始处理请求之前在应用程序的顶级范围内需要您需要的模块。我认为这是一种情况,如果您必须询问是否需要以一种不寻常的方式编写代码,那么就不需要以一种不寻常的方式编写代码。



