【问题标题】:How can I use "?param=X" in a route in NodeJS?如何在 NodeJS 的路由中使用“?param = X”?
【发布时间】:2016-06-14 03:36:48
【问题描述】:

在我的 nodejs 和“express”应用程序中,我有这个:

app.get("/:page?", function (req, res) {
  var pg = req.params.page;

对应于localhost:123localhost:123/3

但是,我希望能够通过req.params.page 以相同的方式获取当前页面,但是 url 应该是localhost:123localhost:123/?page=X

怎么做?

【问题讨论】:

标签: javascript node.js express


【解决方案1】:

我的第一个建议是不要使用/:variable 定义端点。然后,这将匹配您创建的遵循该模式的任何路由。您应该改用 /pages/:page 之类的东西来获取特定页面

然后,您应该使用 Express 中的 URL 参数功能来包含 URL 参数。

这样定义你的路线:

app.get("/pages/:page", function (req, res) {
    var pg = undefined;

    if (req.query.page) {
        pg = req.query.page;
    }
}

然后,您可以访问 req.query.page 中的页面(如果存在)并使用该值做任何您想做的事情。

例如,您可以使用localhost/pages/123?page=3 提交请求。

req.query.page 等于 3,req.params.page 等于 123。

【讨论】:

    【解决方案2】:

    您应该在没有? 的情况下定义您的路线,如果您执行get 操作,例如在localhost:123/3?this=that 上,那么req.query.this 将填充值that

    【讨论】:

      猜你喜欢
      • 2019-07-20
      • 1970-01-01
      • 1970-01-01
      • 2020-04-24
      • 1970-01-01
      • 1970-01-01
      • 2018-09-27
      • 2020-11-18
      • 2016-04-23
      相关资源
      最近更新 更多