如何在NodeJS的路由中使用“?param = X”?
在我的nodejs和“express”应用程序中,我有这样的:
app.get("/:page?", function (req, res) { var pg = req.params.page;
对应于localhost:123
或localhost:123/3
。
不过,我希望能够通过req.params.page
以相同的方式获得当前页面, 但 url应该是localhost:123
或localhost: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
将被填充值