【发布时间】:2020-05-18 22:27:42
【问题描述】:
我的 PersitedModel 中有带有 createdOn 和 lastUpdatedOn 字段的模型,它们基本上是日期。我正在 after save 操作挂钩上更新它。这就是 MyModel.js 的样子。
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 更新的代码,那么它工作正常。所以我面临的问题基本上是操作钩子不断调用该方法。有没有办法防止这种情况。我做错了什么吗?我只想调用这个方法一次
【问题讨论】:
标签: loopbackjs loopback