以下のようにモデルをエクスポートしています。
var Foxx = require("org/arangodb/foxx");
var myNewModel = Foxx.extend(
{ schema:{...} },
{
beforeSave: function() {
throw new Error('reached before save');
}
});
そして、次のようにコントローラーで使用します。
var FoxxRepo = require("org/arangodb/foxx").Repository;
...
app.POST(function(req, resp) {
var instance = new myNewModel({...schemadata...});
var repo = new FoxxRepo(collection, { model: myNewModel });
repo.save(instance);
}
...
リポジトリ イベントに応答する beforeSave モデル イベントを取得できる唯一の方法は、インスタンスをリポジトリに渡す前に、instance.on(...) を介して関数をモデル インスタンスに登録することです。
この議論にはいくつかのスレッドがありますが、それらはイベント登録の追加が始まったばかりの頃のもののようです。ここのドキュメントには、ここで示したイベント登録を示す例があります。私のサーバーのバージョンは 2.7.1 です。
定義ファイルの foxx モデルにイベント ハンドラーを追加し、リポジトリ イベントをリッスンするようにハンドラーをインスタンスに含める方法はありますか、または作成するたびに model.on() を介してすべてのハンドラーを手動で追加する必要があります。新しいデータモデルのインスタンス?