mcpField
E
express

express

github.com/partme-ai開発716104 回インストール3 週間前に更新
リポジトリ

express について

Node.js の HTTP サーバーや REST API を構築する開発者向けの Express スキルです。ルーティング、ミドルウェア、入力検証、エラー処理、セキュリティヘッダー、本番デプロイの指針を扱います。

主な機能

  1. 01Express アプリとミドルウェアの設定
  2. 02ルートとルーターの整理
  3. 03非同期エラー処理
  4. 04CORS とセキュリティヘッダー
  5. 05REST API の検証とレスポンス

活用シーン

  1. 01Node.js HTTP サーバーの作成
  2. 02ルーターによる REST API エンドポイントの整理
  3. 03非同期ルートハンドラーの例外処理
  4. 04本番環境向け Express アプリの準備

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/partme-ai/full-stack-skills --skill express

インストール後、Claude Code で/expressを入力して読み込まれたか確認します。

同梱ファイルLICENSE.txt

詳細

このスキルを使用する場面

次のことをユーザーが求めている場合は、このスキルを使用します。

  • Express のルーティングとミドルウェアを使って Node.js の HTTP サーバーを構築する
  • CORS、ボディ解析、エラー処理、静的ファイルを設定する
  • リクエストの検証とレスポンスのフォーマットを備えた REST API を作成する
  • セキュリティヘッダーを備えた本番環境対応の Express アプリケーションをセットアップする

このスキルの使用方法

ワークフロー
  1. アプリを作成する — Express をインスタンス化し、ミドルウェアを設定します
  2. ルートを定義する — 各エンドポイントのルートハンドラーをセットアップします
  3. エラー処理を追加する — 一貫したレスポンスを返すエラーミドルウェアを実装します
  4. デプロイする — HTTPS を使用し、リバースプロキシの背後で実行します
クイックスタートの例
const express = require('express');
const cors = require('cors');
const helmet = require('helmet');

const app = express();

// Middleware
app.use(helmet());
app.use(cors());
app.use(express.json());

// Routes
app.get('/api/items', async (req, res, next) => {
  try {
    const items = await Item.findAll();
    res.json({ items });
  } catch (err) {
    next(err);
  }
});

app.post('/api/items', async (req, res, next) => {
  try {
    const { name, price } = req.body;
    const item = await Item.create({ name, price });
    res.status(201).json(item);
  } catch (err) {
    next(err);
  }
});

// 404 handler
app.use((req, res) => {
  res.status(404).json({ error: 'Not found' });
});

// Error middleware (must have 4 params)
app.use((err, req, res, next) => {
  console.error(err.stack);
  res.status(err.status || 500).json({
    error: err.message || 'Internal server error',
  });
});

app.listen(3000, () => console.log('Server running on port 3000'));
非同期エラーラッパー
// Wrap async handlers to catch rejected promises
const asyncHandler = (fn) => (req, res, next) =>
  Promise.resolve(fn(req, res, next)).catch(next);

app.get('/api/users', asyncHandler(async (req, res) => {
  const users = await User.findAll();
  res.json(users);
}));
ルーターの例
// routes/items.js
const router = require('express').Router();

router.get('/', asyncHandler(async (req, res) => { /* ... */ }));
router.post('/', asyncHandler(async (req, res) => { /* ... */ }));
router.get('/:id', asyncHandler(async (req, res) => { /* ... */ }));

module.exports = router;

// app.js
app.use('/api/items', require('./routes/items'));

ベストプラクティス

  • ルートとミドルウェアをモジュールに分割し、整理には express.Router() を使用します
  • 未処理の拒否を防ぐため、非同期ハンドラーは必ず try/catch またはラッパーで囲みます
  • セキュリティヘッダーには helmet を使用し、本番環境のオリジン向けに CORS を設定します
  • 本番環境では、HTTPS を使用し、リバースプロキシ(nginx)の背後にデプロイします
  • リクエストのログ記録には morgan を使用し、構造化されたエラーレスポンスを返します

リファレンス

キーワード

express、Node.js、ミドルウェア、ルーティング、REST API、エラー処理、非同期、helmet、cors

コメント