节点js-从原始基本url获取url参数 [英] node js - get url params from original base url

查看:43
本文介绍了节点js-从原始基本url获取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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆