-1

次の URL を指定します。

var urlString = "http://somehost:9090/cars;color=red;make=Tesla?page=1&perPage=10"

車のパス セグメントのマトリックス パラメーター (色とメイク) を取得するために使用できる JavaScript (ノード) ライブラリが必要です。たとえば、次のようになります。

var url = URL.parse(urlString)
url.pathSegments["cars"].params

譲るだろう

{
  "color": "red",
  "make": "Tesla"
}

また、理想的には、そのようなライブラリは、パス セグメント パラメータの適切なデコードを考慮する必要があります。これは、クエリ パラメータと同じデコードではありません。

これらのパラメーター (および URL に関するその他の有用な情報) については、次の記事で詳しく説明します。

https://www.talisman.org/~erlkonig/misc/lunatech%5Ewhat-every-webdev-must-know-about-url-encoding/

私はたくさんのグーグルをしましたが、空になりましたが、うまくいけば私は盲目です!

4

2 に答える 2

1

私は最近、マトリックス パラメーターを解析するための Node.js ミドルウェアを作成しました。それが従う規則とそれが生成する出力の形式を指定しました。

たとえば、app.js は次のようになります。

let app = require ('express') (),
  matrixParser = require ('matrix-parser');

app.use (matrixParser ());

app.get ('/cars*', (req, res) => {
  //notice the asterisk after '/cars'
  console.log (JSON.stringify (req.matrix, null, 2));
  res.send ('Thanks=)');
});

app.listen (9090);

URI は次のようになります。

http://localhost:9090/cars;color=red;make=Tesla?page=1&perPage=10

次に、次のように curl を使用してマトリックス パーサー機能をテストできます。

curl "http://localhost:9090/cars;color=red;make=Tesla?page=1&perPage=10"

次にreq.matrix、次のオブジェクトに設定されます。

[
  {
    "segment": "cars",
    "matrix": {
      "color": "red",
      "make": "Tesla"
    }
  }
]

クエリ文字列 (page、per_page) は変更されません (単純に と書くだけで確認できますreq.query) 。

この時点で答えを書くのはおそらく遅すぎますが、将来的にはまだうまくいくかもしれません.

リポジトリは次のとおりです: https://github.com/duaraghav8/matrix-parser

npm install matrix-parser

編集:以前にコードでより精巧な回答を提供しなかったことを申し訳ありません.これはSOへの私の最初の貢献です.コツをつかむのに少し時間がかかります.

于 2016-07-16T11:03:26.473 に答える