express.route如何确定路线
How express.route determined route
我开始学习 Node.js(使用 Express.js)和 React.js。所以我对 Express Router
有一些疑问
让我们看看我的部分代码
server.js
const app = express();
const apiRouter = require("./Routes/apiRoute");
app.use("/api", apiRouter);
app.listen(3000, () => {
console.log("application run on port " + 3000);
});
/Routes/apiRoute.js
const express = require("express");
const router = express.Router();
router.route("/user/:id")
.post((req,res)=>{
// Do something
})
router.route("/user/status")
.post((req,res) => {
// do something
});
所以。我的问题是快速路线如何确定采用哪种方法。
根据我的示例代码,如果我发送 POST 这样的请求 http://localhost:3000/api/user/status
express router 会看到状态是 :id
对吗?
另一方面,如果我向上移动 /user/status
的路线,它会按照我的预期进行,对吗?
谢谢。
Express matches route in chronological order.
Express 开始匹配URL 与脚本中声明的第一个路由,如果不匹配则移动到下一个。这是因为 Express 是一个 Javascript 框架。您传递给路由的函数,即 (req, res) => {...}
实际上是一个 js 回调函数,如果用户点击匹配声明的相应字符串的路由,该函数将被调用。而在Javascript中,首先调用为事件设置的回调,因为这些回调是在队列中维护的。众所周知,队列是 FIFO。
如果您希望 "/user/:id"
和 "/user/status"
都起作用,您必须在代码中先声明后一个,然后再声明第一个。
我开始学习 Node.js(使用 Express.js)和 React.js。所以我对 Express Router
有一些疑问让我们看看我的部分代码
server.js
const app = express();
const apiRouter = require("./Routes/apiRoute");
app.use("/api", apiRouter);
app.listen(3000, () => {
console.log("application run on port " + 3000);
});
/Routes/apiRoute.js
const express = require("express");
const router = express.Router();
router.route("/user/:id")
.post((req,res)=>{
// Do something
})
router.route("/user/status")
.post((req,res) => {
// do something
});
所以。我的问题是快速路线如何确定采用哪种方法。
根据我的示例代码,如果我发送 POST 这样的请求 http://localhost:3000/api/user/status
express router 会看到状态是 :id
对吗?
另一方面,如果我向上移动 /user/status
的路线,它会按照我的预期进行,对吗?
谢谢。
Express matches route in chronological order.
Express 开始匹配URL 与脚本中声明的第一个路由,如果不匹配则移动到下一个。这是因为 Express 是一个 Javascript 框架。您传递给路由的函数,即 (req, res) => {...}
实际上是一个 js 回调函数,如果用户点击匹配声明的相应字符串的路由,该函数将被调用。而在Javascript中,首先调用为事件设置的回调,因为这些回调是在队列中维护的。众所周知,队列是 FIFO。
如果您希望 "/user/:id"
和 "/user/status"
都起作用,您必须在代码中先声明后一个,然后再声明第一个。