如何更改 Node.js 模块包装器?
原文:https://www . geesforgeks . org/如何更改节点-js-module-wrapper/
模块包装函数:在引擎盖下,NodeJS 并不直接运行我们的代码,它在执行之前将整个代码包装在一个函数内部。这个函数被称为模块包装函数。官方文档参考 https://nodejs . org/API/modules . html # modules _ the _ module _ wrapper。
在执行模块代码之前,NodeJS 用具有以下结构的函数包装器包装它:
(function (exports, require, module, __filename, __dirname) {
//module code
});
模块包装函数在 NodeJS 中的使用:
- 用 var 、 const、或声明的顶级变量让限定在模块范围内,而不是全局对象。
- 它提供了一些特定于模块的全局变量,例如:
- 模块和导出对象,该对象可用于从模块导出值。
- 像_ _ 文件名和_ _ 目录名这样的变量告诉我们模块的绝对文件名及其目录路径。
修改模块包装函数:考虑我们有两个文件, main.js 和 module.js 。在 main.js 中,我们覆盖模块,包装功能,以便控制台. log(' modified wf ');每次需要模块时。现在如果我们需要 module.js,它会包含一条消息来确认我们的修改是否成功。
-
这是第一个调用第二个的文件。
```js var Module = require("module");
(function (moduleWrapCopy) { Module.wrap = function (script) { script = "console.log('modifiedMWF');" + script;
return moduleWrapCopy(script); }; })(Module.wrap);
require("./module.js"); ```
-
这是第二个文件。
js console.log("Hello Geeks from module.js!");
输出:运行 main.js,我们得到以下输出,确认我们在模块包装函数中的成功修改。
node main.js
运行 main.js 时的输出窗口
版权属于:月萌API www.moonapi.com,转载请注明出处