gpt4 book ai didi

node.js - 带有 id 的 express 路由器

转载 作者:搜寻专家 更新时间:2023-10-31 23:42:02 24 4
gpt4 key购买 nike

我知道我可以在 Express 中做到这一点:

app.use('/:id', function (req, res){ // or app.get
console.log('Test param: ' + req.params.id); // "Test param: foo"
});

获取我的 url 参数。

当我尝试使用一个路由器逻辑时,我做了:

index.js

var sites = require('./routes/sites');
app.use('/:id', sites);

routes/sites.js

var express = require('express');
var router = express.Router();

router.get('/', function(req, res, next) {
console.log(req.params.id); // logs "undefined"
// etc ...
});

module.exports = router;

这个逻辑不起作用,我在 shell 命令中得到 {}undefined for req.params.id

知道我的逻辑哪里错了吗?

最佳答案

它不起作用,因为这不是 express 与其 Router 交互的方式。您在路由器中看不到 id 的原因是 :id 未在其范围内声明。你需要做类似的事情

app.use('/', sites);

在你的路由器中

var express = require('express');
var router = express.Router();

router.get('/:id', function(req, res, next) {
console.log(req.params.id);
// etc ...
});

module.exports = router;

此外,您可以尝试使用 app.param() 查看示例文档 http://expressjs.com/api.html#app.param

关于node.js - 带有 id 的 express 路由器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32529969/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com