English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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する必要があります。
module.exports = newMod;
今では、変数 newMod を使用してモジュールを呼び出し、覆った機能を実行するために関数を呼び出すことができます。
この例では、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 モジュールの機能を覆う方法を学びました。