たかぎとねこの忘備録

プログラミングに関する忘備録を自分用に残しときます。マサカリ怖い。

NestJS

Firebase FunctionでJWTを作成して、バックエンドへのリクエストの際に使用する簡単なやり方

前提 NestJSプロジェクトの作成方法や、PassportとJWTを組み合わせて認証機構を実装する方法に関してはこちらを参照。 takagimeow.hatenablog.com Firebase プロジェクトの作成方法についてはこちらの記事を参照。 takagimeow.hatenablog.com Firebase Funct…

NestJSでパイプをつくる話

パイプは、@Injectable()デコレーターでアノテーションされていてかつPipeTransformインターフェースを実装しているクラスのことである。 docs.nestjs.com 用途は、コントローラーのルートハンドラで、@Query()や@Param()などで受け取った入力データを希望の…

NestJSでパラメーターを含むパスをネストしたい場合の簡単な方法

UsersControllerとActivitiesControllerの二つがある場合、activitiesルートをusersルートの子ルートとして実装したい場合がある。 例えば/users/:uidの後に/activities/:idのパスを繋いで/users/:uid/activities/:idというパスでアクセスしたいみたいな感じ…

NestJSでのデータベースをSQLiteからMySQLに乗り換えた話

*.controller.spec.tsや*.e2e-spec.tsでテストを行う際に、あえてサービスに対してモックを行わず、Prismaを通してローカルに置いてあるSQLiteを使用するようにしていた。 ところが、テストの数が多くなってくるとConnectorErrorが発生し始めた。 Invalid `t…

NestJSでe2eテストをやってみる

ルートディレクトリに、testディレクトリを作成する。 e2eテストのファイル名はxxx.e2e-spec.tsの形式にする。 Jestの設定 package.jsonのjestの設定を修正する。 testRegexフィールドを文字列のみから配列に修正して、e2e-specファイルもテストできるように…

NestJSでモジュール間の循環依存を解消する方法

UsersModuleのimports配列に直接AuthModuleクラスを追加したい。 // src/users/users.module.ts @Module({ imports: [AuthModule], providers: [UsersService, PrismaService], controllers: [UsersController], exports: [UsersService], }) export class U…

NestJSでPrismaとPassportを組み合わせていろいろ試してみる

NestJSを使って、認証が通ったリクエストのみレスポンスを返すルートを作成してみたい。 TL;DR 今回作ってみたアプリのリポジトリはこちらから見れますー。適当なのでよろしくお願いします。。。 github.com 準備 まずプロジェクトを作ろう。プロジェクト名…

冷やし中華の代わりにNestJSはじめました

ずっとNestJSについては認知していたが、クラスを使用したり、デコレーターを使用したりと何かと難しそうな印象だったため今まで触れてこなかった。 しかし、本番環境で利用できるサーバーサイド用のフレームワークとしてはNestJSはある一定の知名度を誇って…