English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

NodeJS Grundlagen-Tutorial

NodeJS Express.js

NodeJS Puffer&URL;

NodeJS MySql

NodeJS MongoDB

NodeJS Datei(FS)

Andere NodeJS

Node.js Modulfunktion überschreiben

Funktionen von Node.js-Modulen überschreiben

Ersatzfunktion für Node.js-Module – in einigenUnter den Umständen, dass Sie die Funktionen eines bestehenden Moduls verbessern möchten, indem Sie es überschreiben. In diesem Node.js-Tutorial werden wir die Überarbeitung der Funktionen von Node.js-Modulen lernen.

Um bestehende Funktionen von Node.js-Modulen zu überschreiben, befolgen Sie bitte die folgenden Schritt-für-Schritt-Anweisungen:

Modul einführen

Der erste Schritt zur Überarbeitung der Funktionen im Modul ist die Einbeziehung des Moduls selbst mit der require-Funktion.

var newMod = require('<module_name>');

Wir haben das Modul in die Variable abgerufen.

Funktion aus Modulvariablen entfernen

Verwenden Sie im Modul newMod die Variable, um die Funktion mit folgender Syntax zu löschen.

  delete newMod['<function_name>'];

Bitte beachten Sie, dass die vorgenommenen Änderungen nur die Änderungen an der Modulvariable newMod betreffen und nicht die des ursprünglichen Moduls selbst.

将具有相同名称的功能添加到模块变量

在模块newMod中使用变量 ,使用以下语法添加具有在上一步中删除的相同名称的函数。

newMod.<function_name> = function(function_parameters) {
 // function body
};

重新导出模块

您必须重新导出模块才能使覆盖的功能生效。

module.exports = newMod;

现在,您可以将变量newMod 用于模块,以调用该函数,然后将执行重写的功能。

示例:Node.js模块的重写功能

在此示例中,我们将覆盖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 
Message from newly added function to the module
sample.txt

重写readFile()函数可能不是一个好主意,但对于演示来说已经足够了。

结论:

在本教程–重写Node.js模块的功能中,我们学习了使用示例Node.js程序覆盖Node.js模块的功能。