기본적으로 날짜가있는 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의 업데이트를 위해 코드를 제거하는 경우는 내가 조작 후크 this.Am 내가 일을 방지하기 위해이 방법을 method.Is를 호출 계속되고 직면하고 있음을 기본적으로 fine.So에게 문제를 작동 잘못된.? 이 메서드를 한 번만 호출하고 싶습니다.
수 지금은 전에 MyModel.observe 후크 저장하여 구현 한 ('전에 '기능 (CTX, 다음) { 을 저장 if (ctx.instance && ctx.isNewInstance) { ctx.instance.createdOn = new Date(); } if (ctx.data &&! ctx.isNewInstance) { ctx.data.lastUpdatedOn = new Date(); } next(); }}); –