パッケージとフレームワークのインストール
npm install typescript @types/node @types/express ts-node
npm install express cors helmet morgan
パッケージの解説
typescript
役割: TypeScriptコンパイラ
機能: TypeScriptコードをJavaScriptに変換
必要性: TypeScriptで開発するため必須
@types/node
役割 : Node.jsの型定義ファイル
機能: Node.jsのAPI(fs、path、process等)の型情報を提供
例: process.env、fs.readFile等の型チェック
ドキュメント:https://www.npmjs.com/package/@types/node
@types/express
役割: Express.jsの型定義ファイル
機能: Expressの型情報を提供
例: Request、Response、Router等の型チェック
ドキュメント:https://www.npmjs.com/package/@types/express
ts-node
役割: Node.jsでTypeScriptを直接実行するツール
機能: コンパイルせずにTypeScriptファイルを直接実行
メリット: 開発時の高速化
ドキュメント:https://www.npmjs.com/package/ts-node
Webフレームワーク
express
役割: Node.js用のWebフレームワーク
機能: HTTPサーバー、ルーティング、ミドルウェア
例: app.get(), app.post(), app.use()
ドキュメント:https://expressjs.com/
cors
役割: Cross-Origin Resource Sharing(CORS)対応
機能: 異なるドメインからのAPIアクセスを許可
必要性: フロントエンド(localhost:3000)からバックエンド(localhost:3001)へのアクセス
ドキュメント:https://expressjs.com/en/resources/middleware/cors.html
helmet
役割: セキュリティヘッダーの自動設定
機能: XSS、CSRF等の攻撃を防ぐHTTPヘッダーを追加
例: X-Content-Type-Options, X-Frame-Options
ドキュメント:https://helmetjs.github.io/
制作のベストプラクティス: セキュリティ:https://expressjs.com/en/advanced/best-practice-security.html
morgan
役割: HTTPリクエストログ
機能: アクセスログの自動生成
例: GET /api/hoge
ドキュメント:https://expressjs.com/en/resources/middleware/morgan.html