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

NodeJS 基礎チュートリアル

NodeJS Express.js

NodeJS バッファー&URL;

NodeJS MySql

NodeJS MongoDB

NodeJS ファイル(FS)

NodeJS その他

Node.js モジュール関数の再定義

Node.jsモジュールの機能を書き換えます

Node.jsモジュールの代替機能–ある程度ある場合、既存のモジュールを書き換えて機能を改善したいです。このNode.jsのチュートリアルでは、Node.jsモジュールの機能を書き換える方法を学びます。

Node.jsモジュールの既存機能を書き換えるには、以下の手順に従って操作してください:

モジュールを導入します

モジュール内の機能を上書きする最初の一歩は、モジュール自体をrequire関数でインクルードすることです。

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

モジュールを変数に検索しました。

モジュール変数から関数を削除します

newModモジュールで変数を使用する場合、以下の構文を使用して関数を削除します。

  delete newMod['<function_name>'];

記憶に留めておいてください、行った変更はnewModというモジュール変数に対するものであり、元のモジュール本体に対する変更ではありません。

同じ名前の機能をモジュール変数に追加します

モジュール newMod に変数を使用して、上の手順で削除した同名の関数を追加します。

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

モジュールを再exportします

覆った機能を有効にするために、モジュールを再exportする必要があります。

module.exports = newMod;

今では、変数 newMod を使用してモジュールを呼び出し、覆った機能を実行するために関数を呼び出すことができます。

例:Node.js モジュールの機能書き換え

この例では、Node fsモジュールのreadFile()関数を覆います。

モジュール内の機能を書き換える最初のステップは、require関数を使用してモジュール自体を含めることです。

// 覆いたくなる機能を持つモジュールを含めます
var fs = require('fs'); 
 
// 覆いたくなる機能を削除します
delete fs['readFile']; 
 
// 同名の新しい関数を追加します
fs.readFile = function(str){ 
    console.log("機能がオーバーライドされました。"); 
    console.log(str); 
 } 
 
// 変更を有効にするためにモジュールを再exportします
module.exports = fs
 
// 新しい覆った機能を使用できます
fs.readFile("sample.txt");

出力結果

~/workspace/nodejs$ node node-js-overriding-function-in-module.js 
モジュールに新しく追加された関数からのメッセージ to モジュール
sample.txt

readFile() 関数を書き換えるのは良いアイデアではないかもしれませんが、デモ用には十分です。

結論:

このチュートリアルでは -Node.js モジュールの機能を書き換える中で、私たちは、Node.js サンプルプログラムを使用して Node.js モジュールの機能を覆う方法を学びました。