我用提供者创建了一个拦截器并将其绑定到“rpc”
export class RPCProvider implements Provider<Interceptor> {
constructor(
@inject(CertifierBindings.CERTIFIER)
public certifierModule: CertifierModule
) { }
value() {
return this.intercept.bind(this);
}
async intercept<T>(
invocationCtx: InvocationContext,
next: () => ValueOrPromise<T>,
) {
// i want to pass some parameters in here
// ...
return await next();
}
}
应用程序.ts
this.bind('rpc').toProvider(RPCProvider);
我可以这样使用它:
@intercept('rpc')
@authenticate('basic', {
scope: []
})
@post('/test/v1/anything')
async test(): Promise<any> {
return await this.dbMain.col("Maintainer").aggregateAndToArray([]);
}
但是每次使用时如何传递参数?像这样的东西:
@intercept(rpc({
a:1, // <=
b:2
}))
@authenticate('basic', {
scope: []
})
@post('/test/v1/anything')
async test(): Promise<any> {
return await this.dbMain.col("Maintainer").aggregateAndToArray([]);
}