我刚刚开始研究 NestJS,所以,我什至不能简单地弄清楚尝试通过 hbs 参数将新变量从 Interceptor 添加到 DOM 会出现什么问题。
我的学习任务只是使用拦截器在生成的页面上某处打印有关服务器响应时间的日志记录信息。
但是当尝试使用其他解决方案时,我遇到了一个问题,即页面上的登录字段为空。那么,如何解决呢?
我的拦截器:
import { Injectable, NestInterceptor, ExecutionContext, CallHandler } from '@nestjs/common';
import { Observable, map } from 'rxjs';
export interface Response<T> {
data: T;
}
@Injectable()
export class LoggingInterceptor<T> implements NestInterceptor<T, Response<T>> {
intercept(context: ExecutionContext, next: CallHandler): Observable<any> {
const start = Date.now();
return next
.handle()
.pipe(
map((data) => {return {...data, time: Date.now() - start}}),
);
}
}
我的模板页面部分发布到时间值:
<div>
<h3>Contacts</h3>
<p>Some links</p>
<p>Total time server: {{time}}</p>
</div>
然后我将这个日志记录拦截器添加到一个现有的控制器,如
UseInterceptors(LoggingInterceptor<any>)
,仅此而已。
拦截器训练没有结果,我不知道为什么。