如何停止在expressjs中丢失请求参数?

如何停止在expressjs中丢失请求参数?,express,Express,我已经在一个单独的route.js文件中定义了我的路线,如下所示(为了简洁起见,删除了详细信息) 在server.js中,我将这条路线映射如下 var route = require('./routes/route.js'); app.use('/api/use/:id/role', route); 已正确调用My route函数,但路由器处理程序中的id参数不可用。我做错了什么吗?使用以下选项: 完整的独立示例: var express = require('express'); var a

我已经在一个单独的
route.js
文件中定义了我的路线,如下所示(为了简洁起见,删除了详细信息)

server.js
中,我将这条路线映射如下

var route = require('./routes/route.js');
app.use('/api/use/:id/role', route);
已正确调用My route函数,但路由器处理程序中的
id
参数不可用。我做错了什么吗?

使用以下选项:

完整的独立示例:

var express = require('express');
var app     = express();
var server  = app.listen(3000);
var router  = express.Router({ mergeParams : true });

router.route('').get(function(req, res) {
  console.log('id', req.params.id);
  return res.sendStatus(200);
});

app.use('/api/use/:id/role', router);
使用以下选项:

完整的独立示例:

var express = require('express');
var app     = express();
var server  = app.listen(3000);
var router  = express.Router({ mergeParams : true });

router.route('').get(function(req, res) {
  console.log('id', req.params.id);
  return res.sendStatus(200);
});

app.use('/api/use/:id/role', router);

将其添加到子路由器不起作用
req.params
仍然为空。@Suhas我发布了一个适用于我的完整示例(使用
express@4.13.3
)将其添加到子路由器不起作用
req.params
仍然为空。@Suhas我发布了一个适用于我的完整示例(使用
express@4.13.3
var express = require('express');
var app     = express();
var server  = app.listen(3000);
var router  = express.Router({ mergeParams : true });

router.route('').get(function(req, res) {
  console.log('id', req.params.id);
  return res.sendStatus(200);
});

app.use('/api/use/:id/role', router);