在我的小型聊天应用程序中,当我对以“users”结尾的端点进行 HTTP 调用时,我希望我的房间路由器接管。这可以带有前面的房间名称,或者什么也没有。
routes.js:
module.exports = function(app) {
var roomRoute = require('./routes/room');
app.use('/:roomname/users', roomRoute);
app.use('/users', roomRoute);
};
现在,当我的房间路由器接管时,我希望能够访问房间名称(如果网址中存在)。像这样的东西:
./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 中提取它,但我认为可能有更好的方法......
最佳答案
路由器需要将mergeParams
选项设置为true。
http://expressjs.com/en/4x/api.html#express.router
let router = express.Router({ mergeParams: true });
关于node.js - Express.js - 如何将 url 参数从主路由器传递到另一个路由器模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34392834/