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
Expressルーターはステータスが:id
正しいことを確認しますか?
一方、ルートを/user/status
上に移動すると、期待どおりに移動しますか?
ありがとうございました。
Expressは、ルートを時系列で照合します。
Expressは、スクリプトで宣言されている最初のルートとURLの照合を開始し、一致しない場合は次のルートに移動します。これは、ExpressがJavascriptフレームワークであるためです。ルートに渡す関数(req, res) => {...}
は、実際には、ユーザーが宣言された対応する文字列に一致するルートにヒットした場合に呼び出されるjsコールバック関数です。また、Javascriptでは、イベントに対して最初に設定されたコールバックが最初に呼び出されます。これは、これらのコールバックがキューに保持されているためです。ご存知のとおり、キューはFIFOです。
との両方"/user/:id"
を機能"/user/status"
させたい場合は、最初にコードで後者を宣言し、次に最初の宣言を行う必要があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加