javascript - 如何始终将某个路径参数替换为 node.js 中的另一个值?
问题描述
我的代码示例:
router.get('/name/:name/height', (req,res) => {
...
}
router.get('/name/:name/weight', (req,res) => {
...
}
router.get('/age/:age/height', (req,res) => {
...
}
router.get('/age/:age/weight', (req,res) => {
...
}
在这里,当name
as 出现时foo
,我想将其替换为,bar
因为foo
是bar
.
但是在所有块中重复插入 if-replace 代码看起来并不好。
有没有其他选择来实现这个?
我试过:
router.use('/name/:name', (req, res, next) => {
let name = req.params.name
if (name === 'foo') {
console.log("HHHHHHHHHHHHHHHHHHH")
req.params.name = 'bar'
}
next()
}
)
该HHH...
日志已打印,但 req.params.name 似乎没有更新。
解决方案
如果foo
确实是 的别名bar
,我建议您使用以下内容301 Redirect
响应foo
端点响应:
router.get('/name/foo/:path', (req, res) => {
res.redirect(301, '/name/bar/' + req.path);
});
推荐阅读
- mysql - MySQL 8:UPDATE 查询中的 RANK 函数不可能?
- php - 创建后 Laravel 5.8 中的“未定义变量:帖子”
- php - 这是在 PHP 中结束一天的正确方法吗?
- python - 熊猫未能分离 csv 文件的列
- css - 如何获得未定义 CSS 变量的警告
- php - 将包含图像的文本列转换为 BLOB 列会使事情中断
- sql - 在 SQL WHERE...IN 子句中包含连接字段
- tinyos - 如何在 TinyOS 中测试多任务处理?
- nlp - 如何自定义 spaCy 的分词器以防止拆分由正则表达式描述的短语
- php - 将数组插入 PDO (PHP):“SQLSTATE[HY093]: Invalid parameter number”