繁体   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