🧕
【NestJS】REPLの便利な使い方TIPS
これはなに
NestJSのREPLの使い方について紹介します。
公式ドキュメント:https://docs.nestjs.com/recipes/repl
事前準備
公式ドキュメントに従ってrepl.ts
を用意する。
ファイルが変更されたときにREPLにも反映されるようにしておく。
repl.ts
import { repl } from '@nestjs/core';
import { AppModule } from 'src/app.module';
async function bootstrap() {
const replServer = await repl(AppModule);
replServer.setupHistory('.nestjs_repl_history', (err) => {
if (err) {
console.error(err);
}
});
}
bootstrap();
使いやすいようにpackage.json
のscripts
に以下を追加しておく。
package.json
"scripts": {
"repl": "nest start --watch --entryFile repl",
// ...
以下のコマンドで起動できる。
$ npm run repl
NestJSのREPLの使い方
利用可能なcontrollerやproviderを表示する
debug()
を使う。
> debug()
AppModule:
- controllers:
◻ AppController
- providers:
◻ AppService
UsersModule:
- controllers:
◻ UsersController
- providers:
◻ UsersService
初期化されたインスタンスを取得する
get()
を使う。
> service = get(AppService) // $(AppService) でもOK
AppService {}
インスタンスのメソッド一覧を表示する
methods()
を使う。
> methods(AppService)
Methods:
◻ getHello
インスタンスのメソッドを呼び出す
> service = get(AppService)
AppService {}
> service.getHello()
'Hello World!'
getを使わずにインスタンスを新しく生成することも可能
> newService = new AppService()
AppService {}
> newService.getHello()
'Hello World!'
インストールしたパッケージを使う
ダイナミックインポートを使う。
> bcrypt = await import('bcryp')
> salt = bcrypt.genSaltSync(10)
'$2b$10$QhStEQz6BxS.zRROYqQjre'
> dayjs = (await import('dayjs')).default
> dayjs().format()
'2024-07-05T23:20:57+09:00'
Discussion