我在一个单独的route.js文件中定义了我的路线如下(为简洁起见,删除了详细信息)
var express = require('express');
var router = express.Router();
router.route('')put(function(req, res){
console.log(req.params.id); //prints undefined
});
Run Code Online (Sandbox Code Playgroud)
在server.js我绘制这条路线如下
var route = require('./routes/route.js');
app.use('/api/use/:id/role', route);
Run Code Online (Sandbox Code Playgroud)
我的路由函数被正确调用,但id参数在路由器处理程序中不可用。我做错了什么吗?
使用mergeParams选项:
var router = express.Router({ mergeParams : true });
Run Code Online (Sandbox Code Playgroud)
完整的独立示例:
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);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
875 次 |
| 最近记录: |