Javascript 我怎样才能使用;?参数=X";在NodeJS的路线上?
在我的nodejs和“express”应用程序中,我有以下内容:Javascript 我怎样才能使用;?参数=X";在NodeJS的路线上?,javascript,node.js,express,Javascript,Node.js,Express,在我的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 如何?您应该在不使用?的情况下定义路由,并且如果您在loca
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
如何?您应该在不使用
?
的情况下定义路由,并且如果您在localhost:123/3上执行get操作,那么req.query将使用的值填充此,我的第一个建议是,您不要使用/: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。您希望使查询字符串成为路由的一部分;是这样吗?我很确定你不能这么做,但这是个好问题。这可能是最接近的副本:可能是更接近的副本:(“执行这些[route]匹配时不考虑查询字符串…”)