Express中的参数路由为空

我尝试打印路由器参数,但req.params是空的,不知道我做错了什么。

在app.js中:

... var shareFile=require('./controllers/file/share'); ... app.use('/share/:id', shareFile); ... 

和share.js控制器:

 var express = require('express'); var router = express.Router() router.get('/', function (req, res, next) { res.send(req.params) }); module.exports = router; 

localhost:3000/share/123给出空的json页面。 将res.send更改为console.log会给出{}

谢谢

当路由被定义为/share/:id时,req.params会产生{id: 'abc'} ,并且你调用了http://yourserver/share/abc

 router.get('/', function (req, res, next) { res.send(req.params) }); 

以上你应该期望req.params在这里将是空的,因为你没有期待他们。 但是你应该在这里看到他们:

 router.get('/share/:id', function (req, res, next) { res.send(req.params) });