如何在express node.js中将url的一个版本重定向到另一个版本

如何在express node.js中将url的一个版本重定向到另一个版本,node.js,express,Node.js,Express,我已经完成了以下实现 app.post('/k/v4/monitor/start', function (req, res) { Monitor.start(data, function (err) { res.end('Monitor Started'); }); }); app.post('/k/v4/monitor/stop', function (req, res) { Monitor.start(data, function

我已经完成了以下实现

app.post('/k/v4/monitor/start', function (req, res) {
      Monitor.start(data, function (err) {
            res.end('Monitor Started');
      });
});

app.post('/k/v4/monitor/stop', function (req, res) {
      Monitor.start(data, function (err) {
            res.end('Monitor Stopped');
      });
});
现在的要求是我需要支持几个旧版本(1到3)并重定向到版本4。这意味着/k/v1/monitor/,/k/v2/monitor/,/k/v3/monitor/*所有URL都应该重定向到/k/v4/monitor/*


在express中如何处理这种路由情况?实现这一目标的最佳方法是什么?如果有人能给我举个例子,那就太好了。

我想你可以使用HTTP重定向:

app.post('/k/v1/monitor/start', function(req, res) {
    res.writeHeader(301, { 'Location' : '/k/v4/monitor/start'});
    res.end();
})

但据我所知,问题是POST请求被更改为使用重定向。所以我不知道你是否可以使用这个解决方案。或者您根本不需要使用HTTP POST,您可以使用HTTP GET(这意味着对所有相关URL使用app.GET而不是app.POST)…

我需要使用HTTP POST从客户端获取POST数据!事实上,我在一个地方寻找一个共同的逻辑。将所有较低版本的URL重定向到V4,在这种情况下,“重定向”可能不是正确的词。您可以只使用正则表达式作为URL路径吗?因此,您可以使用“/k/v[1234]/monitor/start”而不是“/k/v4/monitor/start”。这样映射将处理所有版本。。。