【NestJS】NestJSで遊んでみる
概要
NestJSで遊んでみたので、遊んでみた感想やメモなどを記載していきます。
NestJSとは
- Node.js サーバーアプリケーション向けのフレームワークである。
- TypeScriptベース
- デコレーターベースでのルーティング指定
- DIやAOP機能がバンドル
- Angular や JavaのJAX-RSの実装に似ている
- Jestによるユニットテストサンプルがバンドル
- CLI完備
以下に主観ですが、メリット・デメリットを記載します。
メリット
- クラスのレイヤーが確立されているので、クラス配置に悩まなくてすむ。
- TypeScriptベースなので、チーム開発に向いている。
- DI・AOPがバンドルされていて、実装と設定の分離がしやすい。
- AngularやJAX-RS経験者なら学習コストが低い。
- DBアクセス、HTTP通信などもバンドルされているのでライブラリ選択に悩まなくてすむ。
デメリット
- 日本語情報が少ない。
- AWS Lambda などのファンクションベースのサーバーレスの場合、高機能になってしまう場合がある。
新規プロジェクト作成方法
CLIをインストール後、CLIコマンドを実行することで新規プロジェクト作成が可能
yarn global add @nestjs/cli nest new project-name
JSONを返すサンプルを作ってみる
実行環境
- Node.js - 10.x
- Yarn - 1.13.x
使用ライブラリ
- @nestjs/common - 6.0.x
- @nestjs/core - 6.0.x
- @nestjs/platform-express - 6.0.x
- typescript - 3.2.x
src/dto.ts
export interface HogeDto { id: string; name: string; }
src/app.controller.ts
import { Controller, Get, Param } from '@nestjs/common'; import { HogeDto } from './dto'; @Controller() export class AppController { @Get('hoge/:id') findOne(@Param('id') id: string): HogeDto { return { id, name: 'aaa', } as HogeDto; } }
実行
実行結果