当我的快递应用路由到另一个文件后,我如何访问URL参数?

问题描述 投票:0回答:1

我的主express服务器在Node.js中叫做app.js,当我试图访问URL参数时,它返回未定义。

app.use("/login", require(./routes/login));
app.use("/:id", require("./routes/users"));

当我尝试访问URL参数时,它返回undefined。

我尝试记录req.params。

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

router.get('/dashboard', (req, res) => {
    res.send(`Current Ornament Status and Data for ${req.params}`);
});

module.exports = router;

它给我一个空数组。

我猜测它的参数在路由后的另一个文件中无法访问。你能不能提出一个变通的办法?

node.js express routing node-modules web-development-server
1个回答
0
投票

我认为你错过了一些关于express.js路由的基本部分,这样做才有意义。

requires行意味着它正在加载另一段代码。所以你也需要向我们展示这一点。

:id的事情需要更长的解释。

假设我想让服务器处理网址finduser23。

其中23可以不同,可以是任何数字。我不会写99个不同版本的router.get,对吧?

router.get("/finduser/1",...
router.get("/finduser/2",...
router.get("/finduser/3",...

不,我们要做的是把它变成一个参数。

router.get("/finduser/:id",...

然后无论我们传递什么数字都会变成req.params.id,假设路由器传递的是req,res。

例:如果我们传递URL finderuser15,那么req.params.id = 15。

如果你只是通过finduser,那么req.params.id就会一无所获。

完整的细节可以在这里找到http:/expressjs.comenguiderouting.html#route-parameters。

你的例子。

router.get('/dashboard', (req, res)

没有任何参数,所以req. params. id什么都没有。

© www.soinside.com 2019 - 2024. All rights reserved.