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

标签 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);
};

现在,当我的房间路由器接管时,我希望能够访问房间名称(如果网址中存在)。像这样的东西:

./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/

相关文章:

node.js - 将上传的文件存储到 Express Js 的文件系统中

node.js - Express中定义路由时添加route关键字的区别

c++ - 无法打开或找到文件 "afxwin.h",使用 .dff 进行修补(Building Doom 3 源代码)

Angular 4 : Handling ID Not Found

php - 独立使用 Symfony Routing 时如何缓存路由?

node.js - 在 socket.io 重新连接时更新查询字符串参数

javascript - Heroku Nodejs 路径问题...错误 : ENOENT: no such file or directory

node.js - Mongoose 实例方法丢失执行上下文

javascript - 用于查找唯一文档的 Mongoose 查询

javascript - ngRoute错误,版本冲突