节点js-从原始基本url获取url参数 [英] node js - get url params from original base url
问题描述
在我的节点JS Express应用程序中,我在app.js文件中定义了带有正则表达式的路径.即
In my node JS express app I have defined routes with path having regex expressions in my app.js file. i.e
var tableRoute = require('./routes/tables');
app.use('/keyspaces/(regex to match param)/tables',tableRoute);
然后在我的route/tables.js文件中,我为此路由定义了以下处理程序
Then in my routes/tables.js file I have following handler defined for this route
router.get('/', function(req, res, next) {
// need to access url param here
});
现在显然我无法通过req.params.xzy访问我的url参数,因为这里处理程序是为'/'定义的,而不是为'/keyspaces/:xzy/tables'定义的,有什么方法可以从这里访问此url参数?原始基本网址.
Now clearly I cannot access my url param via req.params.xzy because here handler is defined for '/' not for '/keyspaces/:xzy/tables', is there any way I can access this url param here from original base url.
推荐答案
您可以添加一个中间件来处理它.在您的示例中:
You can add a middleware to handle it. In your example :
var tableRoute = require('./routes/tables');
app.use('/keyspaces/:xzy/tables',function(req,res,next){
req.xyz=req.params.xyz;
next();
},tableRoute);
然后在路由表中,您可以访问它并通过自己设置req.params:
Then in routes table you can access it and set req.params by your own :
router.get('/', function(req, res, next) {
req.params.xyz = req.xyz;
});
这篇关于节点js-从原始基本url获取url参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!