Node.js Express.js-如何将url参数从主路由器传递到另一个路由器模块?
在我的小型聊天应用程序中,当我对以“users”结尾的端点进行HTTP调用时,我希望我的房间路由器接管。这可能是前面的房间名称,或者根本没有 routes.js: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
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