私はnode.jsプログラミングが初めてです。既存の node.js アプリケーション (Haraka SMTP サーバー) の 1 つの関数の動作を変更する必要があります。
これを行うためのベストプラクティスは何ですか? プラグインを使用する必要がありますか、または node.js アプリで特定の JS 関数をオーバーロードする別の方法がありますか? これは可能ですか?
私はnode.jsプログラミングが初めてです。既存の node.js アプリケーション (Haraka SMTP サーバー) の 1 つの関数の動作を変更する必要があります。
これを行うためのベストプラクティスは何ですか? プラグインを使用する必要がありますか、または node.js アプリで特定の JS 関数をオーバーロードする別の方法がありますか? これは可能ですか?
ノードのrequire
キャッシュ ロードされたオブジェクト。したがって、オブジェクトの関数をオーバーライドし、何かを実行し、元の関数を呼び出して、後で何かを実行できます。
var fs = require('fs');
var origRenameSync = fs.renameSync;
fs.renameSync = function(oldPath, newPath) {
newPath += ".renamed";
origRenameSync.call(this, oldPath, newPath);
// do more here
};
これは悪い例です。この方法でコア ライブラリを変更しないでください。すべての副作用を予測することはできません。
ただし、自分が何をしているのかを知っていれば、既存のライブラリを内部的に変更せずに採用できます。関数を装飾するための非常に柔軟な方法です。