MongooseとExpressで未処理のルートを処理する方法


  1. エラーハンドリングミドルウェアの設定: Expressアプリケーションで未処理のルートエラーをキャプチャするために、エラーハンドリングミドルウェアを設定します。以下のコードは、Expressのapp.jsファイル内に追加する例です。
app.use((req, res, next) => {
  const error = new Error('Not Found');
  error.status = 404;
  next(error);
});
app.use((error, req, res, next) => {
  res.status(error.status || 500);
  res.json({
    error: {
      message: error.message
    }
  });
});
  1. Mongooseのルートエラーハンドリング: Mongooseの未処理のルートエラーをキャプチャするためには、Mongooseスキーマのバリデーションエラーをキャッチする必要があります。以下のコードは、Mongooseスキーマ内でのエラーハンドリングの例です。
const mongoose = require('mongoose');
const schema = new mongoose.Schema({
  // スキーマ定義
});
const Model = mongoose.model('Model', schema);
Model.create({}, (error, doc) => {
  if (error) {
    if (error.name === 'ValidationError') {
      // バリデーションエラーの処理
    } else {
      // その他のエラーの処理
    }
  }
});
  1. 追加のエラーハンドリング: カスタムルートやその他のライブラリを使用している場合、それらのエラーハンドリング方法も確認する必要があります。各ライブラリのドキュメントや公式リファレンスを参照し、適切なエラーハンドリング手法を実装してください。

上記の手順とコード例を使用することで、MongooseとExpressで未処理のルートを処理する方法を簡単かつ効果的に実装することができます。