本文目录导读:

- JavaScript (Node.js + Express)
- Python (Flask)
- Python (Django)
- PHP
- Shell/Bash 脚本中获取当前路由
- Java (Spring Boot)
- 综合示例(Node.js 通用)
- 关键点说明
获取路由路径的方法取决于你使用的编程语言和框架,以下是几种常见场景的脚本获取路由路径的方法:
JavaScript (Node.js + Express)
// 在请求处理中获取
app.get('/users/:id', (req, res) => {
console.log('完整路径:', req.originalUrl); // /users/123?page=1
console.log('请求路径:', req.path); // /users/123
console.log('基础路径:', req.baseUrl); // /users
console.log('路由路径:', req.route.path); // /users/:id
});
Python (Flask)
from flask import request
@app.route('/users/<int:id>')
def get_user(id):
print('请求路径:', request.path) # /users/123
print('完整URL:', request.url) # http://localhost:5000/users/123
print('基础路径:', request.base_url) # http://localhost:5000/
return 'Hello'
Python (Django)
from django.http import Http404
def my_view(request):
path = request.path # /users/123
full_path = request.get_full_path() # /users/123?page=1
return HttpResponse(f"路径: {path}")
PHP
<?php // 获取当前请求的完整路径 $requestPath = $_SERVER['REQUEST_URI']; // /users/123 $scriptPath = $_SERVER['SCRIPT_NAME']; // /index.php // 使用 Laravel 框架时 $request = Request::instance(); $path = $request->path(); // users/123 $fullUrl = $request->fullUrl(); // http://example.com/users/123 ?>
Shell/Bash 脚本中获取当前路由
#!/bin/bash
# 获取脚本自身的路径
SCRIPT_PATH="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"
SCRIPT_NAME="$(basename "$0")"
echo "脚本路径: $SCRIPT_PATH"
echo "脚本名称: $SCRIPT_NAME"
# 如果是通过 URL 访问(如 CGI)
if [ -n "$REQUEST_URI" ]; then
echo "请求路径: $REQUEST_URI"
fi
Java (Spring Boot)
@RestController
public class UserController {
@GetMapping("/users/{id}")
public ResponseEntity<?> getUser(@PathVariable String id,
HttpServletRequest request) {
System.out.println("请求路径: " + request.getRequestURI());
System.out.println("完整URL: " + request.getRequestURL());
System.out.println("查询参数: " + request.getQueryString());
return ResponseEntity.ok().build();
}
}
综合示例(Node.js 通用)
// 通用方法获取路由信息
function getRouteInfo(req) {
const routeInfo = {
method: req.method, // GET, POST, etc.
baseUrl: req.baseUrl, // /api
path: req.path, // /users/123
fullUrl: `${req.protocol}://${req.get('host')}${req.originalUrl}`,
query: req.query, // { page: '1' }
params: req.params, // { id: '123' }
originalUrl: req.originalUrl, // /users/123?page=1
route: req.route // 正则/参数路由信息
};
return routeInfo;
}
关键点说明
req.path- 只包含路径部分,不含查询字符串req.originalUrl/req.originalUrl- 包含完整路径和查询字符串req.baseUrl- 挂载的中间件前缀路径req.route.path- 定义时的路由模式
选择哪种方法取决于你的应用框架和具体需求,通常在实际开发中,你需要结合几个属性来获取完整的路由信息。