3

ドキュメントの HTML 表現を提供する Express ルート/doc/:idがあり、" " を追加したときに EPUB 表現を提供したいと考えてい.epubます。ただし、Express はピリオドで区切らないので、/doc/:id.epubsetを使用するreq.params.idと " id.epub" になります。ファイル拡張子を別のパラメータとして認識させる方法はありますか、それとも単に正規表現を使用して抽出する必要がありますか?

を見ましたres.formatが、これはヘッダーが設定されている場合にのみ有効でAcceptedあるようです。私が見る限り、単に URL をブラウザに入力した場合は有効ではありません。

4

2 に答える 2

0

あなたが説明している動作に基づいて、ルート一致ルールが順不同である可能性があると思います。

これは機能します:

app.get('/doc/:id.epub', function(req, res, next){
  res.send('id: ' + req.params.id); //match /doc/x.epub (id=x)
});
app.get('/doc/:id', function(req, res, next){
  res.send('id: ' + req.params.id); //match doc/x (id=x) | doc/y.html (id=y.html)
});

/doc:/:id が最初の場合、/doc/x.epub の x.epub の ID を取得します。

于 2013-05-03T04:00:52.703 に答える