ExpressJS-URL構築

これでルートを定義できますが、それらは静的または固定です。動的ルートを使用するには、さまざまなタイプのルートを提供する必要があります。動的ルートを使用すると、パラメーターを渡し、それに基づいて処理することができます。

これが動的ルートの例です-

var express = require('express');
var app = express();

app.get('/:id', function(req, res){
   res.send('The id you specified is ' + req.params.id);
});
app.listen(3000);

これをテストするには、 http://localhost:3000/123。以下の応答が表示されます。

URLの「123」を他のものに置き換えることができ、変更は応答に反映されます。上記のより複雑な例は次のとおりです。

var express = require('express');
var app = express();

app.get('/things/:name/:id', function(req, res) {
   res.send('id: ' + req.params.id + ' and name: ' + req.params.name);
});
app.listen(3000);

上記のコードをテストするには、 http://localhost:3000/things/tutorialspoint/12345

あなたは使用することができます req.paramsURLで渡したすべてのパラメータにアクセスするためのオブジェクト。上記の2つは異なるパスであることに注意してください。それらは決して重複しません。また、取得時にコードを実行したい場合'/things' 次に、それを個別に定義する必要があります。

パターン一致ルート

使用することもできます regexURLパラメータの一致を制限します。あなたが必要だと仮定しましょうid5桁の長い数字になります。次のルート定義を使用できます-

var express = require('express');
var app = express();

app.get('/things/:id([0-9]{5})', function(req, res){
   res.send('id: ' + req.params.id);
});

app.listen(3000);

これは only 5桁の長さのリクエストに一致します id。より複雑な正規表現を使用して、ルートを照合/検証できます。どのルートもリクエストに一致しない場合は、"Cannot GET <your-request-route>"応答としてのメッセージ。このメッセージは、この単純なルートを使用して404 notfoundページに置き換えられます-

var express = require('express');
var app = express();

//Other routes here
app.get('*', function(req, res){
   res.send('Sorry, this is an invalid URL.');
});
app.listen(3000);

Important − Expressはルートの最初から最後まで一致するため、これはすべてのルートの後に配置する必要があります。 index.js 必要な外部ルーターを含むファイル。

たとえば、上記と同じルートを定義した場合、有効なURLでリクエストすると、次の出力が表示されます。−

間違ったURLリクエストの場合、次の出力が表示されます。