Authored by ccbikai(👎🏻🍜)

独立出URL重写中间件

@@ -156,6 +156,7 @@ app.use((req, res, next) => { @@ -156,6 +156,7 @@ app.use((req, res, next) => {
156 try { 156 try {
157 const user = require('./doraemon/middleware/user'); 157 const user = require('./doraemon/middleware/user');
158 const reqParamsFilter = require('./doraemon/middleware/req-params-filter'); 158 const reqParamsFilter = require('./doraemon/middleware/req-params-filter');
  159 + const urlRewrite = require('./doraemon/middleware/url-rewrite');
159 const subDomain = require('./doraemon/middleware/sub-domain'); 160 const subDomain = require('./doraemon/middleware/sub-domain');
160 const itemNameHandler = require('./doraemon/middleware/item-name-handler'); 161 const itemNameHandler = require('./doraemon/middleware/item-name-handler');
161 const setYohoData = require('./doraemon/middleware/set-yoho-data'); 162 const setYohoData = require('./doraemon/middleware/set-yoho-data');
@@ -168,6 +169,7 @@ try { @@ -168,6 +169,7 @@ try {
168 169
169 // YOHO 前置中间件 170 // YOHO 前置中间件
170 app.use(reqParamsFilter()); 171 app.use(reqParamsFilter());
  172 + app.use(urlRewrite());
171 app.use(subDomain()); 173 app.use(subDomain());
172 app.use(itemNameHandler); 174 app.use(itemNameHandler);
173 app.use(setYohoData()); 175 app.use(setYohoData());
@@ -11,27 +11,6 @@ const helpers = global.yoho.helpers; @@ -11,27 +11,6 @@ const helpers = global.yoho.helpers;
11 11
12 module.exports = () => { 12 module.exports = () => {
13 return (req, res, next) => { 13 return (req, res, next) => {
14 - if (/^\/home\/orders\/paynew/.test(req.url)) {  
15 - // 支付中心,由于微信安全配置限制在 home/orders 路径下,需要转发,误删!!!  
16 - req.url = `/cart${req.url}`;  
17 - }  
18 -  
19 - if (/^\/coupon\/floor/.test(req.url)) {  
20 - // 领券中心 兼容php的url  
21 - req.url = `/activity${req.url}`;  
22 - }  
23 -  
24 - if (/^\/shopping\/pay\/aliwapreturn/.test(req.url)) {  
25 - // 兼容php的url  
26 - req.url = `/cart${req.url}`;  
27 - }  
28 -  
29 - if (/^\/sale/.test(req.url)) {  
30 - // sale 兼容php的url  
31 - res.redirect(301, helpers.urlFormat('/product/sale', req.query, 'default'));  
32 - return;  
33 - }  
34 -  
35 if (req.hostname === 'activity.yoho.cn') { 14 if (req.hostname === 'activity.yoho.cn') {
36 // 活动模版的活动页 15 // 活动模版的活动页
37 if (req.path === '/') { 16 if (req.path === '/') {
  1 +/**
  2 + * URL 重写(主要用于兼容原来PHP的连接)
  3 + */
  4 +const helpers = global.yoho.helpers;
  5 +
  6 +module.exports = () => {
  7 + return (req, res, next) => {
  8 + if (/^\/home\/orders\/paynew/.test(req.url)) {
  9 + // 支付中心,由于微信安全配置限制在 home/orders 路径下,需要转发,误删!!!
  10 + req.url = `/cart${req.url}`;
  11 + }
  12 +
  13 + if (/^\/coupon\/floor/.test(req.url)) {
  14 + // 领券中心 兼容php的url
  15 + req.url = `/activity${req.url}`;
  16 + }
  17 +
  18 + if (/^\/shopping\/pay\/aliwapreturn/.test(req.url)) {
  19 + // 兼容php的url
  20 + req.url = `/cart${req.url}`;
  21 + }
  22 +
  23 + if (/^\/sale/.test(req.url)) {
  24 + // sale 兼容php的url
  25 + res.redirect(301, helpers.urlFormat('/product/sale', req.query, 'default'));
  26 + return;
  27 + }
  28 +
  29 + next();
  30 + };
  31 +};