1. ホーム
  2. node.js

[解決済み] Express 4におけるメソッド・オーバーライド・ミドルウェアの役割とは?

2022-02-16 05:27:06

質問内容

から Router オブジェクトをサポートしています。

var router = require('express').Router();
router.delete('/route', function(req, res) {
    //...
};

router.put('/route', function(req, res) {
    //...
};

メソッドオーバーライドのミドルウェアにどんな使い道があるのか?また app.jspackage.json ?

解決方法は?

その methodOverride() ミドルウェアは、GET や POST のような単純な動詞のみをネイティブにサポートするクライアントからのリクエストに対応します。そのような場合は、特別なクエリフィールド (あるいは隠しフォームフィールド) を指定して、もともと送られてきた動詞ではなく、実際に使うべき動詞を指定することができます。そうすることで、バックエンドの .put() / .delete() / .patch() /etc. のルートを変更する必要はなく、そのまま機能し、あらゆる種類のクライアントからのリクエストを受け入れることができます。