【发布时间】:2021-01-10 02:36:48
【问题描述】:
我只是想添加 morgan 来记录我的 http 调用。我尝试过的两种方法是:
- 将其添加到 MySequence 类中:
export class MySequence extends MiddlewareSequence {
async handle(context: RequestContext) {
const finished = await this.invokeMiddleware(context, [morgan()]);
if (finished) {
return;
}
await super.handle(context);
}
}
- 在
this.sequence(MySequence)文件中调用this.sequence(MySequence)之前添加它:
export class MyAppApiApplication extends BootMixin(
ServiceMixin(RepositoryMixin(RestApplication)),
) {
constructor(options: ApplicationConfig = {}) {
super(options);
this.expressMiddleware(
morgan,
{},
{
injectConfiguration: 'watch',
key: 'middleware.morgan',
}
);
this.sequence(MySequence);
...
}
第一种方法在我更新环回依赖项之前有效:
"@loopback/boot": "^2.4.1",
"@loopback/core": "^2.9.3",
"@loopback/repository": "^2.11.0",
"@loopback/rest": "^6.0.0",
"@loopback/rest-explorer": "^2.2.8",
"@loopback/service-proxy": "^2.3.6",
到:
"@loopback/boot": "^3.0.1",
"@loopback/core": "^2.10.1",
"@loopback/repository": "^3.0.1",
"@loopback/rest": "^7.0.1",
"@loopback/rest-explorer": "^3.0.1",
"@loopback/service-proxy": "^3.0.1",
更新显然做了一些让它停止工作的事情,但我不知道是什么。
此外,我在文档中看到了其他方法,例如使用 Interceptors 的方法,但是当它应该像向 Express 应用程序添加中间件一样简单时,感觉有点矫枉过正。
【问题讨论】:
标签: loopbackjs loopback4