【问题标题】:How do I access URL parameter after i've routed my express app to another file?将我的快速应用程序路由到另一个文件后,如何访问 URL 参数?
【发布时间】:2020-04-11 11:05:27
【问题描述】:

我的主要快递服务器在 Node.js 中称为 app.js。

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;

它给了我一个空数组。

我认为参数在路由后在另一个文件中是不可访问的。你能建议一个解决方法吗?

【问题讨论】:

  • 您可以访问作为路由声明前缀的参数。简短的回答...
  • 嗨,欢迎来到社区!我没有答案。但以后请用代码sn-ps代替截图。
  • 请添加代码 sn-ps ,以便我们正确查看并帮助您。
  • 您必须将 req.parmas 传递给其他文件中的函数。
  • 添加了代码片段,感谢@almarc

标签: node.js express routing node-modules web-development-server


【解决方案1】:

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

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

:id 需要更长的解释。

假设我希望服务器处理 URL /finduser/23

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

EX:如果我们传递 URL /finderuser/15,那么 req.params.id = 15

如果你只是传递 /finduser 那么 req.params.id 什么都没有。

此处提供完整的详细信息 http://expressjs.com/en/guide/routing.html#route-parameters

你的例子:

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

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

【讨论】:

    猜你喜欢
    • 2017-05-18
    • 2017-04-27
    • 1970-01-01
    • 2016-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-26
    • 2021-07-22
    相关资源
    最近更新 更多