Nest.jsを使ったリクエストパラメータの取得方法【超入門】

PR
Nest.jsを使ったリクエストパラメータの取得方法【超入門】
この記事は約7分で読めます。

Next.jsではありません。Nest.jsです。
面談のときに「ネストジェーエスを使って・・」と口頭でいった時に「ネクストでしょ?」と何度も聞かれ「いや。だからネストです!」と伝えた時、鼻で笑われたことがあります。
その方は、まだNest.jsを知らなかったようだ・・・。

これは流行る!あると思います!

nest.js

Nest.jsとは

Nest.jsとは、Node.js上で動作するMVCフレームワーク

Express.jsとAngularの機能を組み合わせており、Webアプリケーション、モバイルアプリケーション、サーバーアプリケーションなど、さまざまな種類のアプリケーションを開発することができる

Nest.jsは、TypeScriptで書かれているかつ、モダンな開発手法と多くの機能をサポートしているため、
多くの開発者から支持されており、最近人気は高まっている。

特徴としては、

  • アプリケーションの構造をモジュールベースで構成することができるため、コードの再利用性が高い
  • TypeScriptをサポートしているため、型安全なコードを開発することができる
  • テストフレームワークを統合しているため、テスト駆動開発(TDD)を簡単に行うことができるんだって!
  • 多くのライブラリと統合されているため、開発を効率化することができる

Nest CLIのインストールと起動

Node.jsがインストールされている前提

Nest CLIのインストール

npm install -g @nestjs/cli

新しいプロジェクトの作成

Nest CLIを使って新しいプロジェクトを作成します。

このコマンドを実行すると、いくつかの質問が表示されます。デフォルトの設定で進むにはEnterキーを押します。

nest new project-name

アプリケーションの起動

ブラウザで http://localhost:3000 にアクセスして返されたらOK

npm run start

モジュール、コントローラー、サービスの作成

モジュールの生成:

nest generate module users

コントローラーの生成:

nest generate controller users

サービスの生成:

nest generate service users

モジュールの設定

生成されたファイルは src/users ディレクトリに作成されます。users.module.ts ファイルには、新しく作成されたコントローラーとサービスがインポートされています。

import { Module } from '@nestjs/common';
import { UsersController } from './users.controller';
import { UsersService } from './users.service';

@Module({
controllers: [UsersController],
providers: [UsersService],
})
export class UsersModule {}

コントローラーの設定

users.controller.ts ファイルにルートとハンドラを追加します。

import { Controller, Get } from '@nestjs/common';
import { UsersService } from './users.service';

@Controller('users')
export class UsersController {
constructor(private readonly usersService: UsersService) {}

@Get()
findAll(): string {
return this.usersService.findAll();
}
}

サービスの設定

users.service.ts ファイルにロジックを追加します。

import { Injectable } from '@nestjs/common';

@Injectable()
export class UsersService {
findAll(): string {
return 'This action returns all users';
}
}

全体の構成

app.module.ts ファイルに UsersModule をインポートします。

import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { UsersModule } from './users/users.module';

@Module({
imports: [UsersModule],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}

これで、http://localhost:3000/users にアクセスすると、UsersService が返すメッセージ(”This action returns all users”)が表示されます。

Nest.jsでのGETパラメータ取得

GETパラメータを取得するには、@Queryデコレータを使用する

コード例)

@Get("/")
async getHello(@Query('name') name: string) {
  return `Hello, ${name}!`;
}

@Get("/:paramname/XXX")
async getHello(@Query('paramname') paramnameA: string) {
  return `Hello, ${name}!`;
}

@Query(‘パラメータ名’)

  • パラメータ名を指定することで値を取得できる
    /?パラメータ名= や /:paramname/XXX など

Nest.jsでのリクエストBody取得

リクエストBodyを取得するには、@Bodyデコレータを使用する

Bodyにnameがある場合のコード例)

@Post()
async postHello(@Body() body: { name: string }) {
  console.log(body.name);
}

ClassやTypeも使えるので実際はこちらの方が使うと思います。

class-validatorをimportして使うとバリデーションを掛けることもできる

// @IsString や @IsNotEmptyでバリデーションを掛ける
class RequestDto {
  @IsString  
  @IsNotEmpty
  nama:strring
}


@Post()
async postHello(@Body() body: RequestDto) {
  console.log(body.name);
}

さいごに

TypeScriptが使えて、コントローラーでのRequest受け取りも簡単でわかりやすいため

私は、Nest.jsは確実に伸びると踏んでいます

今回は頭出し程度ですが、ぜひ、取り入れのご検討を!!

需要の高い人気プログラミング言語&フレームワーク【将来性】
数多くの種類の言語からプログラミング初心者にもエンジニアのキャリアアップにも最適な将来性の高い人気のプログラミング言語とおすすめフレームワークを紹介!特に需要の把握はスキルアップと年収に直結です。ガチで必要な全ての選択肢の答えがここに
【make】初心者から始めるおすすめノーコードツールの開発紹介
ノーコードで簡単に自動化やChatGPTを使ったアプリ開発できるツールが登場しました!初心者向けにおすすめのmakeでアプリ開発、使い方を紹介!簡単にLINE連携もできちゃいます。Makeはバックエンド、Bubbleはフロントエンド
【React&TypeScript入門】.js .jsx .ts .tsxの違いと使い分けの話
なんとなく使っているけど、.js .jsx .ts .tsxの違いが分からない~使い分けがよくわからない~を解決しよう!React開発でJavaScriptやTypeScriptのどちらを使うべきかそれぞれメリット・デメリットを把握しよう!
超簡単フリーランスエンジニアになるには?おすすめの案件探し方
経験年数の少なさで諦めていませんか?経験が浅くてもフリーランスエンジニアになれる方法なり方と理由がここにあり。誰でもできる超簡単なおすすめの案件(仕事)の探し方解説!ベストなITエージェントの使い方はこれだ!時代を生き抜く力はフリーランスにあり
PR
PR

コメント

タイトルとURLをコピーしました