我已在单独的route.js
文件中定义了我的路线,如下所示(为简洁起见,已移除详细信息)
var express = require('express');
var router = express.Router();
router.route('')put(function(req, res){
console.log(req.params.id); //prints undefined
});
并在server.js
我将此路线映射如下
var route = require('./routes/route.js');
app.use('/api/use/:id/role', route);
我的路由功能已正确调用,但id
参数在路由器处理程序中不可用。我做错了吗?
答案 0 :(得分:3)
使用mergeParams
选项:
var router = express.Router({ mergeParams : true });
完全独立的示例:
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);