【问题标题】:Route parametrs empty in ExpressExpress 中的路由参数为空
【发布时间】:2017-07-21 18:28:01
【问题描述】:

我尝试打印路由器参数,但 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 而不是/share/:id,然后更改为router.get('/:id', ...)。然后,您将拥有req.params

标签: javascript node.js express url-routing


【解决方案1】:

当路由定义为 /share/:id 并且您调用 http://yourserver/share/abc 时,req.params 将生成 {id: '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)
});

【讨论】:

    猜你喜欢
    • 2020-08-21
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 2012-10-11
    • 1970-01-01
    • 2016-03-12
    • 1970-01-01
    • 2022-01-17
    相关资源
    最近更新 更多