【问题标题】:why do we have to use colon (:) in the route parameter "/:userQuery"为什么我们必须在路由参数 "/:userQuery" 中使用冒号 (:)
【发布时间】:2020-12-15 17:13:37
【问题描述】:

为什么我们必须在路由参数“/:userQuery”中使用冒号(:)

const express = require("express");
const app = express();
app.set("view engine", "ejs");
app.listen(3000);
app.get("/:userQuery", (req, res) => {
  res.render("about", {
    title: "about page",
    data: { userQuery: req.params.userQuery },
  });
});

【问题讨论】:

  • 您阅读文档了吗?您是否尝试将其删除并查看会发生什么? expressjs.com/en/guide/routing.html
  • 如果我删除冒号,则会引发错误 - 无法获取 /about
  • 所以这就是你的答案.... ;) 你使用冒号是因为它表示一个路由参数。阅读指南中的该部分。

标签: javascript node.js express parameters routes


【解决方案1】:
app.get("/info/:parameter/test", (req, res) => {
  console.log(req.params.parameter);
});

因此,如果您现在访问 https://localhost/info/abc/test,控制台日志现在将记录 abc

这就是为什么您可以在您的情况下执行 /about/userhere 的原因。 对于删除 : 的情况,获取错误无法获取 /about。那是因为它现在是 /userQuery,但显然 req.params.userQuery 现在将是未定义的。

【讨论】:

    猜你喜欢
    • 2022-01-23
    • 2017-11-05
    • 1970-01-01
    • 1970-01-01
    • 2021-12-12
    • 1970-01-01
    • 2012-01-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多