如何使用Express路由器重定向URL?

时间:2018-01-22 22:19:37

标签: node.js express heroku

我有以下两个域:

  • myVeryLongSiteDomain.com
  • mVeryShortURL.co

我需要以下简短网址:

  • mVeryShortURL.com/123456789
  • mVeryShortURL.com/a-DSa131 _

要重定向到长网站域,请执行以下操作:

  • myVeryLongSiteDomain.com/的反馈 / 123456789
  • myVeryLongSiteDomain.com/的反馈 /α-DSa131 _

我的运行mVeryShortURL.co的节点/快速服务器在web.js中有以下内容用于路由:

app.get('*', function(request, response) {
  response.redirect(newBaseURL + request.url);
});

当网址与上面的短网址格式(7个字母数字字符)匹配时,如何更新以上内容以将/feedback/添加到网址路径:A-Z,a-z,0-9,_-

1 个答案:

答案 0 :(得分:2)

它只是字符串操作,您可以将/feedback放入newBaseURL中,只有当{7}字符为A-Z a-z 0-9作为路径时才能执行此操作,您只需制作一个正则表达式对于该路线,当它与该路线匹配时,您将/feeback添加到网址,并添加所有其他路线。

let newBaseURL = 'http://myVeryLongSiteDomain.com';

app.get(/\/[A-Za-z0-9_\-]{7}/, function(request, response) {
  response.redirect(newBaseURL + '/feedback' + request.url);
});

app.get('*', function(request, response) {
  response.redirect(newBaseURL + request.url);
});