Node.js MiddleWares #01


MiddleWareは中間のソフトウェアです.
Middlewareはリクエストとレスポンスの間にあります.
ブラウザが要求し、ユーザーが応答する前に中間パッケージがあります.
覚えておきたいことがあります.すべてのmiddlewarehandlerであり、すべてのhandlermiddlewareである.
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 : /と表示されます.