【Backend入門】Express.js+Typescriptでのウェブサーバ(router)

TypeScript Expressjs

概要

サービスの規模が大きくなったりコードを役割べつに分割したりなどで役立つrouterを導入してみます。

routerは

ルーターは、ウェブアプリケーションの異なるエンドポイント(URL)へのリクエストを取り扱うためのモジュールです。ルーターを使用することで、アプリケーションのルートをモジュール化し、保守しやすくするのが可能です。

導入

ファイル化します。

express.Router()を用いてrouterモジュールを作成します。そして別のファイルにします。すうすることでより保守しやすくできます。

// router.ts
export const router = express.Router();
router.get('/users', (req, res) => {});
router.post('/users', (req, res) => {});
router.put('/users', (req, res) => {});

使用します。

// index.ts
import { router } from './router';
...
app.use('/users',router);
...

全体

// index.ts
import express from 'express';
import dotenv from 'dotenv';
import { router } from './router';

dotenv.config();

const app = express();
const port = process.env.PORT || 3000;

// ミドルウェア設定
app.use(express.json());

app.use('/users',router);

app.listen(port, () => {
  console.log(`Server is running on port: ${port}`);
});
// router.ts
import express from 'express';

// 固定のユーザー情報
const users = [
  { id: 0, name: 'J.Taro', age: 35 },
  { id: 1, name: 'S.Hanako', age: 53 },
  { id: 2, name: 'K.Jiro', age: 47 }
];

export const router = express.Router();

// ルーティング
router.get('', (req, res) => {
  res.json(users);
});

router.post('', (req, res) => {
  const newUser = { id: users.length + 1, ...req.body };
  users.push(newUser);
  res.status(201).json(newUser);
});

router.put('/:id', (req, res) => {
  const { id } = req.params;
  const index = users.findIndex(user => user.id === parseInt(id));
  if (index === -1) {
    return res.status(404).json({ message: 'User not found' });
  }
  users[index] = { ...users[index], ...req.body };
  res.json(users[index]);
});
タイトルとURLをコピーしました