Node.js と Express における express.Router と app.get の違い
app.get
: 特定の HTTP メソッド (GET) とパスに対するリクエストを処理するための関数です。
主な違い
機能 | app.get | express.Router |
---|---|---|
適用範囲 | 単一のルート | 複数のルート |
ミドルウェア | 個別に設定 | まとめ設定可能 |
サブドメイン | 直接設定不可 | 設定可能 |
コードの分割 | 困難 | 容易 |
使い分け
- シンプルなアプリケーションでは、
app.get
で十分です。 - サブドメインを使用する場合は、
express.Router
が必要です。 - コードの分割性を向上させたい場合は、
express.Router
を使用します。
コード例
1 app.get の例
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(3000);
2 express.Router の例
const express = require('express');
const app = express();
const router = express.Router();
router.get('/', (req, res) => {
res.send('Hello World!');
});
app.use('/api', router);
app.listen(3000);
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(3000);
const express = require('express');
const app = express();
const router = express.Router();
router.get('/', (req, res) => {
res.send('Hello World!');
});
app.use('/api', router);
app.listen(3000);
app.all
は、すべての HTTP メソッドに対するリクエストを処理するための関数です。特定のメソッドに制限を設けずにすべてのリクエストを受け付けたい場合に便利です。
app.all('/', (req, res) => {
res.send('Hello World!');
});
app.post
app.post
は、POST メソッドに対するリクエストを処理するための関数です。フォームデータなどの送信処理に用いられます。
app.post('/submit', (req, res) => {
// フォームデータの処理
res.send('送信完了');
});
app.put('/users/:id', (req, res) => {
// ユーザー情報の更新
res.send('更新完了');
});
app.delete
app.delete('/users/:id', (req, res) => {
// ユーザー情報の削除
res.send('削除完了');
});
node.js express