首页 > 解决方案 > 为什么我们必须在路由参数 "/:userQuery" 中使用冒号 (:)

问题描述

为什么我们必须在路由参数 "/: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 },
  });
});

标签: javascriptnode.jsexpressparametersroutes

解决方案


app.get("/info/:parameter/test", (req, res) => {
  console.log(req.params.parameter);
});

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

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


推荐阅读