Node.js MiddleWares #01
7375 ワード
MiddleWareは中間のソフトウェアです.
Middlewareはリクエストとレスポンスの間にあります.
ブラウザが要求し、ユーザーが応答する前に中間パッケージがあります.
覚えておきたいことがあります.すべての
Handlerより
つまり、すべてのコントローラはミドルウェアです.
コントローラには2つのパラメータのほかに、もう1つあります.
次の論点.nextは、次の関数を呼び出します.
res.end()を返すのではなくnext()を使用します.
nextはどこにでも含めることができます.
ただし、handleHomeがnextを使用している場合、nextは実行されません.
HandleHomeの後には何もないから
このようにコードを変更すると
ミドルウェアはリクエストに応答しません.
リクエストを続行します.
ミドルウェアは、タスクを次の関数に渡す関数です.
応答関数ではありません.
このミドルウェアはユーザーにウェブサイトのどこに行くかを教えます.
こんな風に書いたら.
Middlewareはリクエストとレスポンスの間にあります.
ブラウザが要求し、ユーザーが応答する前に中間パッケージがあります.
覚えておきたいことがあります.すべての
middleware
はhandler
であり、すべてのhandler
はmiddleware
である.Handlerより
controller
と呼ぶべきです.つまり、すべてのコントローラはミドルウェアです.
コントローラには2つのパラメータのほかに、もう1つあります.
次の論点.nextは、次の関数を呼び出します.
res.end()を返すのではなくnext()を使用します.
const app = express();
const gossipMiddleware = (req, res, next) => {
console.log("I'm in the middle!");
next();
};
const handleHome = (req, res) => {
return res.send("<h1>I still love you.😍</h1>");
};
const handleLogin = (req, res) => {
return res.send({ message: "Login here." });
};
app.get("/", gossipMiddleware, handleHome);
そうすると、コンソールにI'm in the middlewareの文が表示されます.nextはどこにでも含めることができます.
ただし、handleHomeがnextを使用している場合、nextは実行されません.
HandleHomeの後には何もないから
このようにコードを変更すると
const app = express();
const gossipMiddleware = (req, res, next) => {
return res.send("I have the power now!");
next();
};
expressはhandleHomeを呼び出しません.return res.send("I have the power now!");
これは、このコードが中断され、次の段階に進まないためです.ミドルウェアはリクエストに応答しません.
リクエストを続行します.
ミドルウェアは、タスクを次の関数に渡す関数です.
応答関数ではありません.
このミドルウェアはユーザーにウェブサイトのどこに行くかを教えます.
こんな風に書いたら.
const app = express();
const gossipMiddleware = (req, res, next) => {
console.log(`Someone is going to : ${req.url}`);
next();
};
コンソールに表示されます.Someone is going to : /
と表示されます.Reference
この問題について(Node.js MiddleWares #01), 我々は、より多くの情報をここで見つけました https://velog.io/@0_cyberlover_0/Node.js-MiddleWares-01テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol