ウェブサイト検索

TypeScript - NESTJS バリデーションパイプとサービス層を用いたカスタムバリデータデコレーター

こんにちは、私は最近NESTJSを始めたばかりで、この問題を解決するための助けが必要です。この問題は、バリデーションパイプでリクエストのトークンにアクセスし、別のAPI(同じトークンを使用)を呼び出し、HttpModuleを使って送信されたIDが有効かどうかを確認する必要があるということです。

バリデーションパイプ(nestjsドキュメントのサンプル):

@Injectable() export class ValidationPipe implements PipeTransform<any> { async transform(value, { metatype }: ArgumentMetadata) { if (!metatype || !this.toValidate(metatype)) { return value; } const object = plainToClass(metatype, value); const errors = await validat

続きを読む →

javascript - NestJS と Express により断続的に UnhandledPromiseRejectionWarning が発生する

全く理解できません。これは時々発生しますが、アプリケーション自体には問題を引き起こしません。しかし、何が原因なのか全くわかりません。もし関係しているなら、ブラウザからAPIに同時に呼び出しを行っています。

[Nest] 16608 - 11/7/2018, 1:23:08 PM [NestApplication] Nest application successfully started [Nest] 16608 - 11/7/2018, 1:23:23 PM [LoggerMiddleware] Request /api/observation-statement/pending-count +14943ms [Nest] 16608 - 11/7/2018, 1:23:23 PM [LoggerMiddleware] Request /api/observation-statement/revision-count +16ms (node:14968) UnhandledPromiseRejectionWarning:

続きを読む →

node.js - NestJS (node) - ジェネリック型によるリクエストの検証

私は2つのNestJSコントローラーを持っています

export class ParentController<T> { constructor(protected service: Service<T>) {} @Post() do(@Body() dto: ClassType<T>): Promise<T> { return this.service.do(dto); } }

... そして別のコントローラーは、親を拡張します

@Controller('any') export class AnyController extends ParentController<Entity> { constructor(protected service: Service) { super(service); } }

ご覧の通り、TypeO

続きを読む →

mysql - NestJS typeorm - エンティティを作成できない

TypeOrm(MySQLに設定済み)にIdeaエンティティを追加しようとしているのですが、インポートがうまく動作しないようです。ファイルを追加すると、typeormが正常に初期化されません。

私はtypeormパッケージを再インストールしましたが、どこからデバッグを始めればいいのか全くわかりません。私はチュートリアル(https://www.youtube.com/watch?v=EHlhvy-fh90)を見ながら進めていますが、このエラーはそのチュートリアルでは発生しません。このチュートリアルからは、postgresqlデータベースをdockerで動かしているmysqlに置き換えるという点で逸脱しています。

ノード -> MySQL 接続の設定でいくつか問題

続きを読む →

javascript - NestJSガードからデータベースにアクセスする方法

現在、私はnestjsを学ぼうとしています。そのために、基本的なユーザー認証システムを構築するために公式の(猫)チュートリアルに従いました。

ユーザー名やパスワードを変更するためにAPIにアクセスする際、リクエストはユーザーが有効かどうかを確認する必要があります(データベースからユーザーを読み取る)。ユーザーを保存するためのMongoDB接続はすでに持っています。

私は現在、ガード内でデータベースモジュール/アクセスをどのように取得できるか悩んでいます。

ガードは動作していますが、常に true を返すだけです。データベースモジュールを注入しようとしましたが、うまくいきませんでした。

@Inje

続きを読む →

javascript - NestJSを使ってWebSocketのURLを取得する方法と、Postmanでテストする方法は?

私は nestjs を使って MEAN スタック のアプリケーションを作成しています。NestJS では websockets を使用しています。Postman で websocket をテストする方法が分かりません。通常、Postman ではテスト用のルート URL を使って次のように出力を得ます: "http://localhost:3000/{routeUrl}" しかし、ソケットを使う場合の方法が分からず困っています。

例:

@WebSocketGateway()

続きを読む →

node.js - NestJS/Swagger エラー TS2307: モジュール '@nestjs/swagger' が見つかりません

私はNestJSアプリにSwaggerを追加しようとしていますが、モジュールが見つからないというエラーが出続けます。npm install --save @nestjs/swagger swagger-ui-express を使用してpackage.jsonファイルに追加しました。なお、dockerとdocker-composeも使用しています。

main.ts ファイル:

import { NestFactory } from '@nestjs/core'; import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger'; import { AppModule } from './app.module'; async function bootstrap() { const app = await NestFactory.create(AppModule); const whitelistOrigins = process.env.ALL

続きを読む →

typescript - Nestjs の型安全な mongoose で、モデル関数が正しい型を要求しない(any)

Shema インターフェース

export interface MyCat { name: string; color: string; } export type Cat = MyCat & Document; export const CatSchema = new Schema({ name: { type: String, required: true, }, color: { type: String, required: true, } });

その関数が受け取るDto(色のプロパティがないことに注意してください)

export class CreateCatDto { @IsString() readonly name: string = 'Franco'; }

関数が呼び出されましたが、新しい Cat(cat) ではエラーは発生せず、mongoose 上のランタイムでは必

続きを読む →

node.js - nestjs と fastify で「TypeError: req.pipe is not a function」を解消する方法

NestJS/Fastify と TypeScript でファイルをアップロードしようとしました

これは main.ts です

async function bootstrap() { //file upload with fastify const fastifyAdapter = new FastifyAdapter(); fastifyAdapter.register(fmp, { limits: { fieldNameSiz

続きを読む →

typescript - Nestjs Swagger - 間違った Node モジュールの型をインポート

私は、いくつかの型と関数をエクスポートするパッケージAと、パッケージAを依存関係として使用し、他の型と関数もエクスポートするパッケージBを持っています。

私はパッケージCで依存関係としてパッケージAとパッケージBをインポートします。パッケージAの型を使用するとき、APIドキュメント用に新しいnestjs swaggerプラグインを使用しますが、パッケージAの型は直接パッケージAからではなく、./packageB/node_modules/packageA からインポートされます。

誰か理由を知っていますか?

追伸: 私は lerna を使っており、パッケージ A、B、C は同じリポジトリ内にあります。tsconfig.json の preserveSymlinks オプションにはいくらか影響があるようですが、それをオフにすると、インポートされるパッケージは相対パス('../../../../../packageA')になり、'packageA' ではありません。

続きを読む →