Javascript express.route如何确定路线
我开始学习Node.js(使用Express.js)和React.js。所以我有一些关于快速路由器的问题 让我们看看我的代码部分 server.jsJavascript express.route如何确定路线,javascript,node.js,express,express-router,Javascript,Node.js,Express,Express Router,我开始学习Node.js(使用Express.js)和React.js。所以我有一些关于快速路由器的问题 让我们看看我的代码部分 server.js const app = express(); const apiRouter = require("./Routes/apiRoute"); app.use("/api", apiRouter); app.listen(3000, () => { console.log("application run on port " + 300
const app = express();
const apiRouter = require("./Routes/apiRoute");
app.use("/api", apiRouter);
app.listen(3000, () => {
console.log("application run on port " + 3000);
});
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
});
/Routes/apiRoute.js
const app = express();
const apiRouter = require("./Routes/apiRoute");
app.use("/api", apiRouter);
app.listen(3000, () => {
console.log("application run on port " + 3000);
});
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
快速路由器将看到状态为:id
对吗
另一方面,如果我将/user/status
的路径向上移动,它将按照我的预期运行,对吗
多谢各位
Express按时间顺序匹配路线
Express开始将URL与脚本中声明的第一个路由相匹配,如果不匹配,则移动到下一个路由。这是因为Express是一个Javascript框架。传递给路由的函数,即(req,res)=>{…}
实际上是一个js回调函数,如果用户点击与声明的相应字符串匹配的路由,就会调用该函数。在Javascript中,首先为事件设置的回调被调用,因为这些回调是在队列中维护的。我们都知道,队列是FIFO
如果您想让
“/user/:id”
和“/user/status”
都起作用,您必须先在代码中声明后一个,然后再声明第一个。路由匹配从上到下或从前到后运行,即第一个匹配的URL将起作用,搜索URL将停止。所以你可以把/status-URL带到上面