Node.js Express.js-如何将url参数从主路由器传递到另一个路由器模块?

Node.js Express.js-如何将url参数从主路由器传递到另一个路由器模块?,node.js,express,url-routing,Node.js,Express,Url Routing,在我的小型聊天应用程序中,当我对以“users”结尾的端点进行HTTP调用时,我希望我的房间路由器接管。这可能是前面的房间名称,或者根本没有 routes.js: module.exports = function(app) { var roomRoute = require('./routes/room'); app.use('/:roomname/users', roomRoute); app.use('/users', roomRoute); }; var roo

在我的小型聊天应用程序中,当我对以“users”结尾的端点进行HTTP调用时,我希望我的房间路由器接管。这可能是前面的房间名称,或者根本没有

routes.js:

module.exports = function(app) {
    var roomRoute = require('./routes/room');
    app.use('/:roomname/users', roomRoute);
    app.use('/users', roomRoute);
};
var roomRoute = require('./routes/room');
app.use('/:roomname/users', function (req, res, next) {
    req.roomname = req.params.roomname;
    next();
}, roomRoute);
app.use('/users', roomRoute);
现在,当我的房间路由器接管时,我希望能够访问url中存在的房间名称。比如:

./routes/room.js:

var express = require('express');
var router = express.Router();

router.get('/info', function(req, res) {
    console.log('the roomname is ' + req.roomname);
    res.end();
});

module.exports = router;

有什么办法可以轻易地把这个房间的名字传给别人吗?我可能可以从baseUrl中提取它,但我认为可能有更好的方法…

我发布后读到的下一件事有了答案

在routes.js中:

module.exports = function(app) {
    var roomRoute = require('./routes/room');
    app.use('/:roomname/users', roomRoute);
    app.use('/users', roomRoute);
};
var roomRoute = require('./routes/room');
app.use('/:roomname/users', function (req, res, next) {
    req.roomname = req.params.roomname;
    next();
}, roomRoute);
app.use('/users', roomRoute);

req.params.roomname
不起作用?否-请求传递到房间路由后,参数为空。您甚至可以在
res.locals