【问题标题】:How to route dynamic URL in Express如何在 Express 中路由动态 URL
【发布时间】:2017-10-23 22:17:18
【问题描述】:

假设我有以下网址:

/page?name=myname&age=25

姓名和年龄具有动态值。

如何为这个页面构建一个路由器获取函数?

选项 1:

router.route("/page").get(function(req, res) {
    console.log("got page");
}

选项 2:

router.route("/page?name&age").get(function(req, res) {
    console.log("got page");
}

【问题讨论】:

    标签: javascript node.js express routing


    【解决方案1】:

    会的

    router.route("/page").get(function(req, res) {
        console.log("got page");
    }
    

    ?name=myname&age=25 => 是 req 参数。可以通过

    访问
    req.query.name
    req.query.age
    

    【讨论】:

      【解决方案2】:

      您可以将页面的路由构造为:

      router.route("/page").get(function(req, res) {
          console.log("got page");
      }
      

      对于查询参数,您可以通过以下方式访问它们:

      req.query.YOUR_QUERY_NAME

      因此,在您的情况下,它将变为 req.query.namereq.query.age,它们将分别返回值“myname”和 25。

      你可以在Documentation page阅读更多内容

      如果您也拥有或计划拥有以下路线: http://localhost:3000/name/user/age/84

      在这种情况下,您可以将路由配置为:

      router.route("/name/:myName/age/:myage").get(function(req, res) {
      name = req.params.myName;
      age = req.params.myage;
      });
      

      因为req.params 在此处返回带有值参数的对象 req.params 如果console.log 将返回{"myName":"user", "myage":"84"} 对象

      你可以从Route params link阅读更多关于路由参数的信息

      【讨论】:

        【解决方案3】:

        您可以使用req.query.namereq.query.age 来实现,您不需要特定的路线,只需router.route("/page")...

        您也可以使用:Route parameters 获取干净的 URL

        【讨论】:

          猜你喜欢
          • 2018-04-03
          • 1970-01-01
          • 2022-01-04
          • 1970-01-01
          • 2016-08-31
          • 1970-01-01
          • 1970-01-01
          • 2016-12-30
          • 2016-06-20
          相关资源
          最近更新 更多