如何在NodeJS的路由中使用“?param = X”?

时间:2016-03-01 16:02:32

标签: javascript node.js express

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

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

,对应localhost:123localhost:123/3

但是,我希望能够通过req.params.page获取当前页面,但网址应为localhost:123localhost:123/?page=X

如何?

2 个答案:

答案 0 :(得分:2)

我的第一个建议是您没有使用/: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。

答案 1 :(得分:0)

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