Authored by 郭成尧

path-params-handle-midd

... ... @@ -294,20 +294,6 @@ const category = (req, res, next) => {
* 品类落地页 SEO 友好的新路由
*/
const listNew = (req, res, next) => {
let queryParams = req.query;
// 1. 取 path 的参数
req.query = listParamsProcess.getParams(req.path);
// 2. 取查询字符串参数
_.assign(req.query, queryParams);
if (req.query) {
_.forEach(req.query, (perParam, index) => {
req.query[index] = stringProcess.paramsFilter(perParam);
});
}
let params = _.assign({}, req.query);
/* 勿修改,唤起 APP 使用 */
... ...
... ... @@ -164,7 +164,7 @@ router.get('/list/global', globalPro.list); // 全球购列表页
// 品类
router.get('/index/index', rewrite.sortParams, list.category);
router.get('/list/index', rewrite.sortParams, list.category); // 兼容 PC 的链接
router.get(/^\/list/, list.listNew); // 列表新的 URL
router.get('/list*', rewrite.resolvePathParams, list.listNew); // 列表新的 URL
router.get('/search/category', list.getCategoryGoods);
// 品牌 | 店铺
... ...
... ... @@ -9,7 +9,8 @@ const typeLib = require('../../config/type-lib');
const _ = require('lodash');
const utils = require('../../utils');
const helpers = global.yoho.helpers;
const listParamsProcess = require('../../utils/list-params-process');
const stringProcess = require('../../utils/string-process');
/**
* 解析url规则中的参数
... ... @@ -114,8 +115,29 @@ const sortParams = (req, res, next) => {
}
};
/**
* 解析 Path 类型泛商品列表 URL 的参数
*/
const resolvePathParams = (req, res, next) => {
let queryParams = req.query;
// 1. 取 path 的参数
req.query = listParamsProcess.getParams(req.path);
// 2. 取查询字符串参数
_.assign(req.query, queryParams);
if (req.query) {
_.forEach(req.query, (perParam, index) => {
req.query[index] = stringProcess.paramsFilter(perParam);
});
}
return next();
};
module.exports = {
resolve,
channel,
sortParams
sortParams,
resolvePathParams
};
... ...