在Express中将参数路由空

时间:2017-07-21 18:28:02

标签: javascript node.js express url-routing

我尝试打印路由器参数但是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可获得{}

由于

1 个答案:

答案 0 :(得分:3)

当路由定义为{id: 'abc'}并且您拨打/share/:id

时,

req.params将生成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)
});