簡體   English   中英

Express.Route如何確定路線

[英]How express.route determined route

我開始學習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 " + 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

快遞路由器會看到狀態是:id對嗎?

另一方面,如果我將/user/status路由上移,它將按我的預期進行,對嗎?

謝謝。

Express按時間順序匹配路線。

Express開始將URL與腳本中已聲明的第一個路由進行匹配,如果不匹配,則移至下一個。 這是因為Express是Javascript框架。 傳遞給路由的函數,即(req, res) => {...}實際上是一個js回調函數,如果用戶點擊與聲明的相應字符串匹配的路由,則將調用該回調函數。 在Javascript中,首先為事件設置的回調被稱為第一個,因為這些回調都保存在隊列中。 眾所周知,隊列是FIFO。

如果要同時使用"/user/:id""/user/status" ,則必須先在代碼中聲明后一個,然后再聲明第一個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM