快速redirect到静态html(如果可用的话)到自定义path

如果redirect到静态* html(如果在公用文件夹中可用)和404(如果不可用)。

var _version = 'v1'; // redirect to a.html app.get(_version + '/a.html', (req, res) => { res.sendFile(path.join(_dirname, 'public', 'htmls', 'a.html')); }); // redirect to b.html app.get(_version + '/b.html', (req, res) => { res.sendFile(path.join(_dirname, 'public', 'htmls', 'b.html')); }); // redirect to c.html app.get(_version + '/c.html', (req, res) => { res.sendFile(path.join(_dirname, 'public', 'htmls', 'c.html')); }); // redirect to someRandom.html app.get(_version + '/someRandom.html', (req, res) => { res.sendFile(path.join(_dirname, 'public', 'htmls', 'someRandom.html')); }); // else redirect to index.html app.get(_version + '/*.html', (req, res) => { res.sendFile(path.join(_dirname, 'public', 'htmls', 'index.html')); }); 

如何将前四个请求redirect到相应的* .html,这样如果文件存在,就必须redirect到该文件,否则就是index.html。

注意:我正在处理所有其他404500请求。

你可以使用express.static简单地做到这一点

 app.use(express.static(path.join(_dirname, 'public/htmls'))); 

或者,您可以使用参数将您的四条路线更改为一条路线:

 app.get(_version + '/:filename', (req, res) => { res.sendFile(path.join(_dirname, 'public', 'htmls', req.params.filename)); });