我正在与Node.js和Puppeteer合作,我正在使用Puppeteer刮取多个网站。我正在考虑通过将每个站点实现分离到自己的文件来组织代码。所以我会有like example.com.js example2.com.js等
其中每一个将需要相同的模块(puppeteer/jsdom)并将导出一个包含变量和函数的对象。这样,我就可以在index.js文件中导入所有这些模块。
我读过关于Nodejs缓存模块的文章,而且这种代码组织方式是标准的,但是,在我的例子中,如果我有100个不同的网站想要删除,那么我将有100个模块需要在其中的每一个中(puppeteer/jsdom),所以如果Nodejs缓存这些模块,我仍然使用100个不同的变量来存储这些模块。
const puppeteer = require('puppeteer');
因此,我将在100个文件中包含这行代码,即使Nodejs缓存了Puppeteer模块,我仍然在创建100个Puppeteer变量,如果我将所有代码都写在一个文件中,我可能只创建一个变量。
我是不是漏了什么?
从这里的官方文件
模块在第一次加载后缓存。这意味着(除其他外)对require(“foo”)的每次调用都将返回完全相同的对象,如果它将解析为相同的文件。
关于“NodeJS正在缓存Puppeteer模块”的说法是正确的,但“我仍在创建100个Puppeteer变量”不是正确的。所以,我会说,不要担心:),您可以继续在多个文件中组织您的代码。