小编Tym*_*iev的帖子

如何解决 Nest.js 中的 DI 问题?

我想了解如何通过 DI 在 Nestjs 中导入第 3 方库。所以,我有一堂课AuthService

export class AuthService {
   constructor(
     @Inject(constants.JWT) private jsonWebToken: any,
   ){}
  ....
}
Run Code Online (Sandbox Code Playgroud)

智威汤逊提供商:

import * as jwt from 'jsonwebtoken';
import {Module} from '@nestjs/common';
import constants from '../../../constants';

const jwtProvider = {
  provide: constants.JWT,
  useValue: jwt,
};

@Module({
  components: [jwtProvider],
})
export class JWTProvider {}
Run Code Online (Sandbox Code Playgroud)

库模块:

import { Module } from '@nestjs/common';
import {BcryptProvider} from './bcrypt/bcrypt.provider';
import {JWTProvider} from './jsonwebtoken/jwt.provider';

@Module({
  components: [
    BcryptProvider,
    JWTProvider,
  ],
  controllers: [],
  exports: [
    BcryptProvider,
    JWTProvider, …
Run Code Online (Sandbox Code Playgroud)

dependency-injection node.js typescript nestjs

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

如何在 nest.js 中创建装饰器?

我在这方面遇到了很长一段时间的麻烦。我的装饰者应该提供用于检查字段的唯一值的信息。它看起来像这样:

export const IsUnique = (
  metadata: {
    entity: any,
    field: string,
  },
): PropertyDecorator => {
  return createPropertyDecorator(constants.custom_decorators.is_unique, metadata);
};
Run Code Online (Sandbox Code Playgroud)

我的验证看起来像这样:

import { HttpException } from '@nestjs/common';
import { PipeTransform, Pipe, ArgumentMetadata, HttpStatus } from '@nestjs/common';
import {validate, ValidationError} from 'class-validator';
import { plainToClass } from 'class-transformer';
import constants from '../../../constants';

@Pipe()
export class ValidationPipe implements PipeTransform<any> {
  async transform(value, metadata: ArgumentMetadata) {
    console.log(arguments);
    const { metatype } = metadata;
    if (!metatype || !this.toValidate(metatype)) {
      return value;
    }

    const …
Run Code Online (Sandbox Code Playgroud)

decorator typescript nestjs

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

如何通过 tls 配置 traefik 的 dns?

我在配置 traefik + pihole 设置时遇到问题。我想通过 tls 配置 dns。也许有人可以指出我正确的方向?

在调试过程中,我发现了工具kdig。我已经尝试过了:

 kdig -d @myiphere +tls-ca +tls-host=mydnshere  example.com                                                                                  07:36:12
;; DEBUG: Querying for owner(example.com.), class(1), type(1), server(myiphere), port(853), protocol(TCP)
;; DEBUG: TLS, imported 127 system certificates
;; WARNING: TLS, handshake failed (A TLS fatal alert has been received.)
Run Code Online (Sandbox Code Playgroud)

好吧,也许证书是错误的?它看起来不像:

openssl s_client -connect mydnshere:853                                                                                                                                                    
CONNECTED(00000003)
/***bunch of text here***/
SSL handshake has read 5070 bytes and written 382 bytes
Verification: OK
---
New, TLSv1.3, Cipher is TLS_AES_128_GCM_SHA256
Server public key is 4096 …
Run Code Online (Sandbox Code Playgroud)

docker docker-compose traefik

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