English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Zastępcze funkcje modułów Node.js – w niektórychW przypadku, gdy chcesz poprawić funkcjonalność istniejącego modułu. W tym教程е Node.js nauczymy się przepisywać funkcje modułów Node.js.
Aby przepisać istniejącą funkcję modułu Node.js, postępuj zgodnie z poniższymi krokami:
Pierwszym krokiem do zastąpienia funkcji w module jest użycie funkcji require, aby zaimportować sam moduł.
var newMod = require('<module_name>');
Moduł został zaretriewowany do zmiennej.
W moduле newMod używaj poniższego składni, aby usunąć funkcję.
delete newMod['<function_name>'];
Пamiętaj, że wprowadzone zmiany dotyczą tylko zmiennej modułu newMod, a nie samego modułu.
在模块newMod中使用变量,使用以下语法添加具有在上一步中删除的相同名称的函数。
newMod.<function_name> = function(function_parameters) { // 函数体 };
您必须重新导出模块才能使覆盖的功能生效。
module.exports = newMod;
现在,您可以将变量newMod用于模块,以调用该函数,然后执行重写的功能。
在此示例中,我们将覆盖Node fs模块的readFile()函数。
重写模块中功能的第一步是使用require函数包括模块本身。
// 包括要覆盖其功能的模块 var fs = require('fs'); // 删除您要覆盖的功能 delete fs['readFile']; // 添加与已删除函数同名的新函数 fs.readFile = function(str){ console.log("The functionality has been overridden."); console.log(str); } // 重新导出模块以使更改生效 module.exports = fs // 您可以使用新覆盖的功能 fs.readFile("sample.txt");
输出结果
~/workspace/nodejs$ node node-js-overriding-function-in-module.js
模块中新添加功能的消息
sample.txt
重写readFile()函数可能不是一个好主意,但对于演示来说已经足够了。
在本教程–在重写Node.js模块的功能中,我们学习了如何使用示例Node.js程序覆盖Node.js模块的功能。