小编ben*_*ngr的帖子

在全局(单例)服务中使用特定于请求的上下文

我希望能够console.log为每个正在执行的 SQL 查询记录(如在 中)登录用户。我正在使用 Nest.js 和 TypeORM(它是 Nest.js 的包装器)。我不知道如何将特定于请求的数据注入全局(单例)提供程序。

我使用的是 Nest.js v6.6.3 和@nestjs/typeormv6.1.3。

// current-user.service.ts
@Injectable({ scope: Scope.REQUEST })
export class CurrentUserService {
  get currentUser(): string | null {
    if (!this.request || !this.request.user) {
      return null;
    }

    return this.request.user.email;
  }

  constructor(@Optional() @Inject(REQUEST) private request: Request) {}
}

// logger.service.ts
@Injectable()
export class LoggerService extends Logger {
  constructor(private readonly moduleRef: ModuleRef) {
    super();
  }

  log(message: any, context?: string) {
    super.log(this.formatMessage(message), context);
  }

  private formatMessage(message: any) {
    // …
Run Code Online (Sandbox Code Playgroud)

node.js express typeorm nestjs

6
推荐指数
1
解决办法
1662
查看次数

如何使用 Observable Input 测试 Angular 组件

我正在尝试测试一个 Angular Component,它基本上接收一个Observabletemplate根据该 Observable 发出的值更改它。这是一个简化版本:

@Component({
    selector: 'async-text',
    template: `
        <span>{{ text | async }}</span>
    `,
})
export class AsyncTextComponent {    
    @Input() text: Observable<string>;
}
Run Code Online (Sandbox Code Playgroud)

我想测试一下,目前这就是我所拥有的,正在使用rxjs-marbles(尽管它不是必须的)。

import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { AsyncTextComponent } from './async-text.component';

describe('AsyncTextComponent', () => {
  let component: BannerComponent;
  let fixture: AsyncTextComponent<AsyncTextComponent>;

  it('...',
    marbles(m => {
      fixture = TestBed.createComponent(AsyncTextComponent);
      component = fixture.componentInstance;
      component.text = m.cold('-a-b-c|', {
        a: 'first',
        b: 'second',
        c: 'third',
      });

      fixture.detectChanges();
      expect(component.nativeElement.innerHTML).toContain('first'); …
Run Code Online (Sandbox Code Playgroud)

rxjs angular angular-test rxjs6

5
推荐指数
1
解决办法
2975
查看次数

标签 统计

angular ×1

angular-test ×1

express ×1

nestjs ×1

node.js ×1

rxjs ×1

rxjs6 ×1

typeorm ×1