在 Express 路由中获取文件类型

tsv*_*der 3 routes node.js express

我有一个 Express 路由/doc/:id,它提供文档的 HTML 表示,我希望它在附加“ .epub”时提供 EPUB 表示。但是,Express 不会在句点上分开,所以如果我使用/doc/:id.epubsetreq.params.id为“ id.epub”。有没有办法将文件扩展名识别为单独的参数,或者我是否只需要使用正则表达式来提取它?

我看过res.format,但似乎这仅在设置Accepted标题时有效,据我所知,如果只是将 URL 输入到浏览器中,则不会如此。

rob*_*lep 5

这有效:

app.get('/doc/:filename.:ext', function(req, res) {
  ...
});
Run Code Online (Sandbox Code Playgroud)

这要求后面的部分/doc/至少包含一个句点,这可能是也可能不是问题。