私はこのルートを持っています/new/:url
。今、私が/new/https://www.google.com
のような要求をするとき、私は応答としてCannot GET /new/https://www.google.com
を得ます。私が期待するのは、文字列https://www.google.com
を得ることです。私はURL component encoding in Node.jsのURLのエンコーディングについてこの答えを読んだが、の要求がルート/new/:url
になされたとき、どのようにすることができるだろうか?そのルートのコードはこちらですURLを別のURLでパラメータとして渡すにはどうすればよいですか?
app.get('/new/:url',(req,res) => {
const url = encodeURIComponent(req.params.url);
console.log(url);
res.json({
url
});
});
これは機能します。しかし、なぜ私のルートハンドラが動作しないのか分かりません。この方法ではURLをエンコードしないため、URLの別個の部分として 'https:// www.google.com'の'/'を扱わず、応答を破棄する理由もありません。 –
これはうまくいくかもしれませんが、すべてのパラメータはURLコンポーネントとして転送中にエンコードする必要があります。 – Wartoshika