【发布时间】:2020-05-20 05:04:50
【问题描述】:
在 lb v3 中有没有办法区分标准远程方法和自定义远程方法?
例如我创建一个远程方法如下:
Customer.order_status = function(orderId, cb) {
// ...
};
Customer.remoteMethod(
// remote method definition
);
现在假设 afterRemote() 或 beforeRemote() 调用(例如在 mixin 中定义),无论如何要确定这是自定义远程方法调用还是标准远程方法调用(如 find, findById等)?
TargetModel.beforeRemote('**', function(ctx, next) {
let methodString = ctx.methodString;
}
order_status 调用的方法字符串类似于Customer.order_status,例如,如果它被定义为非静态方法,它就会是Customer.prototype.order_status。现在,我可以测试模型构造函数中的真实性,以确定它是否是有效的方法。
例如
!!TargetModel[remoteMethodname] // true if it is a valid static method.
但是,我还没有相关信息。不知道是不是定义为自定义远程方法的静态方法。
此外,如果我们在模型上定义了一个范围,它会使事情变得更加复杂。基于上述方法,我无法区分作用域远程调用或标准远程调用。
【问题讨论】:
标签: loopbackjs