expressミドルウェアの理解
3503 ワード
nodejsミドルウェア
クッション:
一つの要求をサーバーに送ります.ライフサイクルを経て、サーバーは要求を聞いてください.解析要求に応答して、サーバーはこのプロセスを処理する時、時には複雑になります.これらの複雑な業務を一つのサブ部分に分解して、サブ部分は一つの中間部品です.処理要求に対して、応答が出る前に、要求と要求に対してもいいです.ステージ応答はいくつかの動作を行い、この処理結果を次の処理ステップに渡すことができる.
expressは中間部品をこのように説明します.
コードを実行します.要求と応答オブジェクトを変更します.終了要求-応答サイクル.スタックの次の中間部品を呼び出します.
カテゴリ:
アプリケーションレベルの中間部品のルーティングレベルの中間部品のエラー処理中、中間部品に中間部品の第三の中間部品を内蔵します.
くりを一つあげる:
中間部品の使用説明:
具体的に
クッション:
一つの要求をサーバーに送ります.ライフサイクルを経て、サーバーは要求を聞いてください.解析要求に応答して、サーバーはこのプロセスを処理する時、時には複雑になります.これらの複雑な業務を一つのサブ部分に分解して、サブ部分は一つの中間部品です.処理要求に対して、応答が出る前に、要求と要求に対してもいいです.ステージ応答はいくつかの動作を行い、この処理結果を次の処理ステップに渡すことができる.
expressは中間部品をこのように説明します.
コードを実行します.要求と応答オブジェクトを変更します.終了要求-応答サイクル.スタックの次の中間部品を呼び出します.
カテゴリ:
アプリケーションレベルの中間部品のルーティングレベルの中間部品のエラー処理中、中間部品に中間部品の第三の中間部品を内蔵します.
くりを一つあげる:
var express = require('express');
var app = express();
app.get('/', function(req, res, next) {
// req
// res
next(); // / , next(),
// ,
});
app.get('/end', function(req, res) {
res.send(' , next ');
})
app.listen(3000);
上のnext()の説明:next()関数はnodejsまたはexpressの関数ではなく、中間部品関数を伝達する第三変数です.これは総称して、任意の名前でもいいです.名前統一のために、混乱を起こさないようにnext()と約束しています.それを呼び出したら、アプリケーションの次の中間プログラムを呼び出します.中間部品の使用説明:
var express = require('express');
var app = express();
app.use(requestTime); //
var requestTime = function(req,res, next) {
req.requestTime = new Date().getTime();
next();
}
app.get('/time', function(req, res, next) {
var timeText = ' :';
timeText = timeText + req.requestTime; // req.requestTime ,
// , req , next() ,
//
res.send(timeText);
});
app.get('/end', function(req, res) {
res.send(' , next ');
})
app.listen(3000);
以下は、要求と応答をそれぞれの関数で処理する複数の中間体関数の例である.具体的に
var express = require('express');
var app = express();
var middleA = function (req, res, next) {
req.useOne = ' middleA ';
res.useOne = 'middleA middleA';
req.paramasQuery = 1
// console.log(req.useOne, req.useTwo, req.useThree);
next();
}
var middleB = function (req, res, next) {
req.useTwo = ' middleB';
res.useTwo = 'middleB middleB';
req.paramasQuery += 1;
console.log(res.useOne, res.useTwo, res.useThree);
next();
}
var middleC = function (req, res, next) {
req.useThree = ' middleC';
res.useThree = 'middleC middleC';
req.paramasQuery += 2;
console.log(res.useOne, res.useTwo, res.useThree);
console.log(req.paramasQuery);
next();
}
app.use(middleA);
app.use(middleB);
app.use(middleC);
app.get('/', function(req, res, next) {
console.log(req.useOne, req.useTwo, req.useThree);
// middleA middleB middleC
// req
console.log(res.useOne, res.useTwo, res.useThree);
// middleA middleA middleB middleB middleC middleC
// res res
req.paramasQuery += 3;
// req paramasQuery , 7,
// res ,
// , , ,
// , ,
// , ,
res.send('req.paramasQuery :' + req.paramasQuery); // 7
})
app.listen(5000, function() {
console.log('5000 ')
})
まとめ:express , , 。 , 。
, , ,。。。, , 。
, , 。
転載先:https://www.cnblogs.com/adouwt/p/11102839.html