24

Node.jsを使用していますが、スクリプトに投稿されたすべてのパラメーターを確認したいと思います。私の機能に到達するために、routes/index.js私は次のことを行っています。

app.post('/v1/order', order.create);

次に、私の関数では、次のようになります。

exports.create = function(req, res, next) {
 console.log( req.params );

しかし、それは空の配列を返しています。しかし、私がそうするとき:

exports.create = function(req, res, next) {
 console.log( req.param('account_id') );

データを取得します。だから私はここで何が起こっているのかについて少し混乱しています。

4

4 に答える 4

38

req.paramsには、ルートパラメータのみが含まれ、クエリ文字列パラメータ(GETから)およびボディパラメータ(POSTから)は含まれません。ただし、param()関数は3つすべてをチェックします。以下を参照してください。

http://expressjs.com/4x/api.html#req.params

于 2012-05-09T20:40:14.500 に答える
14

私は同様の問題を抱えていたので、同じ理由でここに来る人のために解決策を投稿すると思いました. 親ルートで URL 変数を宣言したため、req.params が空のオブジェクトとして出力されていました。解決策は、このオプションをルーターに追加することです。

const router = express.Router({ mergeParams: true });
于 2020-06-05T02:02:10.260 に答える