Express Router在路由器中使用未定义的参数
我不确定这是否是Express中的一个错误,或者如果我只是做了错误(可能是后者),但是我发现req.params只是在请求的最后一步保留参数。 为了certificate我的意思:
工作示例:
router.get('/:id/test', function(req, res){ // req.params.id is not undefined });
不工作:(
文件1:
router.use('/:id', require('./file2'));
文件2:
router.get('/test', function(req, res){ // req.params.id is undefined?! });
现在…上面对我来说看起来完全不合逻辑,因为Express生成器以上述方式定义了路由 – 而且它仍然必须在某个path中定义。 当然,我仍然可以访问“身份证”?
所以基本上,我错过了什么? 这是故意的/是否有logging? FWIW我正在使用Express v4.12.0。
免责声明:文件的东西可能是不相关的,但更好的是安全而不是遗憾。
当你在File 2
创build你的Router
时,你需要告诉它inheritance父母的参数。
var router = express.Router({mergeParams: true});