私はPersitedModelのcreatedOnとlastUpdatedOnフィールドを持つモデルを持っています。これは基本的に日付です。after save
操作フックでこれを更新しています。これがMyModel.jsの外観です。LoopbackJs呼び出しを保存した後に一度だけフック
module.exports = function(MyModel) {
MyModel.observe('after save', function(ctx, next) {
if (ctx.instance && ctx.isNewInstance) {
ctx.instance.updateAttribute('createdOn', new Date());
}
if (ctx.instance && !ctx.isNewInstance) {
ctx.instance.updateAttribute('lastUpdatedOn', new Date());
}
next();
});
}
操作フックがこのメソッドを呼び出したままになります。また、アプリケーションがクラッシュする原因となります。
<--- Last few GCs --->
441366 ms: Mark-sweep 1279.7 (1410.5) -> 1279.7 (1410.5) MB, 1093.9/0.0 ms [allocation failure] [GC in old space requested].
442456 ms: Mark-sweep 1279.7 (1410.5) -> 1279.7 (1410.5) MB, 1090.7/0.0 ms [allocation failure] [GC in old space requested].
443606 ms: Mark-sweep 1279.7 (1410.5) -> 1286.6 (1403.5) MB, 1148.8/0.0 ms [last resort gc].
444735 ms: Mark-sweep 1286.6 (1403.5) -> 1293.7 (1403.5) MB, 1129.2/0.0 ms [last resort gc].
<--- JS stacktrace --->
==== JS stack trace =========================================
Security context: 00000173CF3CFB49 <JS Object>
私はlastUpdatedOnの更新のためのコードを削除した場合、それはfine.So問題は基本的に私が直面していますことを操作フックがthis.Am私が何かをやって防ぐ方法をmethod.Isを呼び出し続けている作品違う。?このメソッドを1回呼び出すだけです
大きな違いも」 if(ctx.instance && ctx.isNewInstance){ ctx.instance.createdOn = new Date(); } if(ctx.data &&!ctx.isNewInstance){ ctx.data.lastUpdatedOn = new Date(); } next(); }); –