我想了解如何通过 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) 我在这方面遇到了很长一段时间的麻烦。我的装饰者应该提供用于检查字段的唯一值的信息。它看起来像这样:
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) 我在配置 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)