Node.js-加载所有文件,还是不加载所有文件?这是我的问题



我是一名终身LAMP开发人员,习惯于在需要的时候使用自动加载器加载类,但直到那时,但现在正在学习Node.js。许多示例显示了加载所有文件的文件夹中的index.js文件。

例如:型号

--- CarModel.js
--- TruckModel.js
--- MotorcylceModel.js
--- index.js - this file includes all the models in the folder.

在我的代码中,我使用

const {CarModel} = require('./index');

这是首选方法吗?

如果是,为什么?

为什么不使用自动加载器,只在需要的时候加载文件?

我在网上搜索,但没有找到任何能清楚解释这一点的东西。如果你有一篇文章会有所帮助,我们将不胜感激。

您不会使用自动加载器,因为没有自动加载器-这与PHP完全不同。在PHP中,有一个全局符号表——类名意味着什么,无论它在哪里使用。因此,如果您调用一个类CarModel,则该名称可以全局引用。当您按名称引用它时,自动加载器可以定位该文件。这得益于PSR-4(Autoloader(,它根据类文件的命名空间和名称指定在哪里查找类文件。

在JavaScript中,情况并非如此。是一个全局对象(Node.js中的global,浏览器中的window(,但结构-函数、类等-不是全局的,与它无关。例如,当你require()是一个带有类实现的文件时,你实际上是在创建一个包含该文件exports值的变量。因此:

  • 没有命名空间
  • 类和函数没有全局名称或限定名称

还有一个反论点:如果可以预加载,为什么要延迟加载文件?与PHP应用程序不同,Node.js进程通常是长时间运行的,因此启动阶段可以根据需要进行大量操作,因为这样一来,您就可以一直使用已经加载的代码,而不是在用户尝试执行新操作时进行昂贵的文件系统调用。

最新更新