APIのエントリーポイントの定義
メニューを表示するにはスワイプしてください
index.js ファイルは、サーバーの設定、ミドルウェアの定義、ルートの設定、エラー処理を行う場所。Express アプリケーションの中心的な役割を担うファイル。
必要なモジュールとファイルのインポート
index.js は、サーバーの設定、ミドルウェアの定義、ルートの設定、エラー処理を行うファイル。コードを段階的に解説。
const express = require("express"); // Import the `Express` framework
const app = express(); // Create an `Express` application instance
const router = require("./routes/postsRoutes"); // Import the `router` module for posts
const PORT = process.env.PORT || 3000; // Define the port for the server
JSONパース用ミドルウェア
app.use(express.json()); // Use the `express.json()` middleware for parsing JSON requests
express.json()ミドルウェアは、受信したJSONリクエストを解析し、データをreq.bodyで利用可能にします。POSTおよびPUTリクエストでJSONデータを扱う際に重要です。
ルート設定
ルーティングは、アプリケーションがクライアントリクエストにどのように応答するかを定義します。
app.use("/api", router); // Use the router for handling routes under the `"/api"` path
ルーティングは、アプリケーションがクライアントリクエストにどのように応答するかを定義します。このコード行では、routerで定義されたpostsRoutes.jsが/apiパス以下のルートを処理するよう指定しています。
エラーハンドリングミドルウェア
エラーハンドリングは、アプリケーションがエラーを適切に処理するために重要です。
// Error handling middleware
app.use((err, req, res, next) => {
console.error(err.stack); // Log the error to the console
res.status(500).json({ error: "Internal Server Error" }); // Send a 500 Internal Server Error response
});
- このミドルウェアは、リクエスト処理中に発生したエラーをキャッチする役割を持ちます。前のミドルウェアやルートハンドラーで
next(err)が呼ばれた場合、このミドルウェアがエラーをキャッチします。 console.error(err.stack)を使ってエラーをコンソールに記録します。- サーバー側で問題が発生したことを示す500 Internal Server Errorレスポンスをクライアントに送信します。
サーバーの起動
アプリケーションのセットアップを完了するために、指定したポートでExpressサーバーを起動します。
// Start the Express server
app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}`); // Log a message indicating the server is running
});
- この行でExpressサーバーが起動し、指定されたポート(
PORT)でリッスンします。 - サーバーが起動すると、稼働中のポート番号をコンソールにメッセージとして出力します。
index.jsファイルの全コード
// Import required modules and files
const express = require("express"); // Import the `Express` framework
const app = express(); // Create an `Express` application instance
const router = require("./routes/postsRoutes"); // Import the `router` module for posts
const PORT = process.env.PORT || 3000; // Define the port for the server
app.use(express.json()); // Use the `express.json()` middleware for parsing JSON requests
app.use("/api", router); // Use the `router` for handling routes under the `"/api"` path
// Error handling middleware
app.use((err, req, res, next) => {
console.error(err.stack); // Log the error to the console
res.status(500).json({ error: "Internal Server Error" }); // Send a `500 Internal Server Error` response
});
// Start the Express server
app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}`); // Log a message indicating the server is running
});
すべて明確でしたか?
フィードバックありがとうございます!
セクション 4. 章 4
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください
セクション 4. 章 4