- Sails.js v0.9.4
- Node.js v0.10.18
- Express.js v3.2.6
私は帆の単純な Web アプリケーションを作成しました。ServerResponse
次のような一般的なエラー応答のプロトタイプに新しい関数を追加したいと思います。
UtilService.js
require('http').ServerResponse.prototype.returnError = function (message) {
console.error("Error: " + message);
return this.view("./error", { errors: [{ stack: message }] });
};
FooController.js
require("../services/UtilService");
上記のコードはうまく機能します。ただし、すべてのコントローラーに同じスニペットを書き込むわけではありません。どうすればDRYに保つことができますか? つまり、拡張コードの上にどのファイルを記述すればよいのでしょうか。
2013-09-25 09:26 UTC に追加
アドバイスや提案をありがとう。config/bootstrap.js
プロトタイプを変更するためのコードを 1 回だけ実行したいので、特別なロジックを追加しました。これはうまく機能しているようです。
config/bootstrap.js
module.exports.bootstrap = function (cb) {
cb();
require('http').ServerResponse.prototype.returnError = function (message) {
console.error("Error: " + message);
return this.view("./error", { errors: [{ stack: message }] });
};
};