我希望我的记录器中间件在发送响应时记录每个匹配的路由.但是可能有任意数量的嵌套子路由.我想我有这个:
var app = express();
var router = express.Router();
app.use(function myLogger(req, res, next)
{
res.send = function()
{
//Here I want to get matched route like this: '/router/smth/:id'
//How can I do this?
});
}
app.use('/router', router);
router.get('/smth/:id', function(req, res, next)
{
res.send(response);
});
Run Code Online (Sandbox Code Playgroud)
可能吗?
srq*_*inn 11
由于应用级中间件不了解路由,因此这是不可能的.但是,如果您使用记录器中间件作为路由中间件,例如:
router.get('/smith/:id', logger, function (req, res) { ... });
Run Code Online (Sandbox Code Playgroud)
您可以在请求对象上使用两个参数的组合:
req.route.path => '/smth/:id'
req.originalurl => '/router/smth/123'
Run Code Online (Sandbox Code Playgroud)
我会告诉你如何将两者结合成一个字符串.
| 归档时间: |
|
| 查看次数: |
5067 次 |
| 最近记录: |