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

在我的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

怎么样?

我的第一个build议是,你不要用/:variable定义你的端点。 这将匹配你创build的任何路线,遵循该模式。 你应该使用像/pages/:page来获得一个特定的页面

然后,您应该使用Express中的URL参数function来包含一个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。

你应该而不是定义你的路线? 如果你做了一个get操作,例如在localhost:123/3?this=that那么这个req.query.this将被填充值