¸üÐÂʱ¼ä:2023Äê09ÔÂ12ÈÕ11ʱ27·Ö À´Ô´:ÀÖÓãµç¾º ä¯ÀÀ´ÎÊý:

Öмä¼þ(Middleware )£¬ÌØÖ¸ÒµÎñÁ÷³ÌµÄÖм䴦Àí»·½Ú¡£ÀýÈ繤³§ÒªÅÅ·ÅÉú²úÖвúÉúµÄÎÛË®£¬¾Í±ØÐëÒªÏȽ«ÎÛË®¾»»¯ÒÔ´ïµ½Åŷűê×¼Ä㣬´¦ÀíÎÛË®µÄʱºò£¬¾¹ýµÄÈý¸ö´¦Àí»·½Ú£¬¾Í¿ÉÒÔ½Ð×öÖмä¼þ¡£

Express µÄÖмä¼þ£¬±¾ÖÊÉϾÍÊÇÒ»¸ö function ´¦Àíº¯Êý£¬ Öмä¼þº¯ÊýµÄÐβÎÁбíÖУ¬±ØÐë°üº¬ next ²ÎÊý¡£¶øÂ·ÓÉ´¦Àíº¯ÊýÖÐÖ»°üº¬ req ºÍ resExpress £¬Öмä¼þµÄ¸ñʽÈçÏ£º

next º¯ÊýÊÇʵÏÖ¶à¸öÖмä¼þÁ¬Ðøµ÷ÓõĹؼü£¬Ëü±íʾ°ÑÁ÷ת¹ØÏµ×ª½»¸øÏÂÒ»¸öÖмä¼þ»ò·ÓÉ¡£ExpressÖмä¼þ´Óµ½ÏìÓ¦µÄÁ÷³ÌÈçÏ£º

ÏÂÃæÎÒÃÇÀ´¿´ExpressÖмä¼þµÄ¼¸ÖÖ³£¹æ²Ù×÷¡£
¿ÉÒÔͨ¹ýÈçϵķ½Ê½£¬¶¨ÒåÒ»¸ö×î¼òµ¥µÄÖмä¼þº¯Êý£º
//³£Á¿mwËùÖ¸ÏòµÄ£¬¾ÍÊÇÒ»¸öÖмä¼þº¯Êý
const mw = function (req, res, next){
console.log('ÕâÊÇÒ»¸ö×î¼òµ¥µÄÖмä¼þº¯Êý'£©
//×¢Ò⣺ÔÚµ±Ç°Öмä¼þµÄÒµÎñ´¦ÀíÍê±Ïºó£¬±ØÐëµ÷Óà next£¨£©º¯Êý
//±íʾ°ÑÁ÷ת¹ØÏµ×ª½»¸øÏÂÒ»¸öÖмä¼þ»ò·ÓÉ
next()
}
¿Í»§¶Ë·¢ÆðµÄÈκÎÇëÇ󣬵½´ï·þÎñÆ÷Ö®ºó£¬¶¼»á´¥·¢µÄÖмä¼þ£¬½Ð×öÈ«¾ÖÉúЧµÄÖмä¼þ¡£ ͨ¹ýµ÷ÓÃapp.use(Öмä¼þº¯Êý)£¬¼´¿É¶¨ÒåÒ»¸öÈ«¾ÖÉúЧµÄÖмä¼þ£¬È«¾ÖÉúЧÖмä¼þµÄʾÀý´úÂëÈçÏ£º
//³£Á¿mwËùÖ¸ÏòµÄ£¬¾ÍÊÇÒ»¸öÖмä¼þº¯Êý
const mw = function (req, res, next) {
console.log('ÕâÊÇÒ»¸ö×î¼òµ¥µÄÖмä¼þº¯Êý’£©
next()
}
//È«¾ÖÉúЧµÄÖмä¼þ
app.use(mw)
3. ¶¨ÒåÈ«¾ÖÖмä¼þµÄ¼ò»¯ÐÎʽ
¶¨ÒåÈ«¾ÖÖмä¼þµÄ¼ò»¯ÐÎʽ¿ÉÒԲο¼ÈçÏ´úÂ룺
//È«¾ÖÉúЧµÄÖмä¼þ
app.use(function (req, res, next) {
console.log£¨’ÕâÊÇÒ»¸ö×î¼òµ¥µÄÖмä¼þº¯Êý’£©
next()
}£©
¶à¸öÖмä¼þÖ®¼ä£¬¹²Ïíͬһ·ÝreqºÍres¡£»ùÓÚÕâÑùµÄÌØÐÔ£¬ÎÒÃÇ¿ÉÒÔÔÚÉÏÓεÄÖмä¼þÖУ¬Í³Ò»Îªreq »òres ¶ÔÏóÌí¼Ó×Ô¶¨ÒåµÄÊôÐÔ»ò·½·¨£¬¹©ÏÂÓεÄÖмä¼þ»ò·ÓɽøÐÐʹÓá£

¿ÉÒÔʹÓÃapp.use() Á¬Ðø¶¨Òå¶à¸öÈ«¾ÖÖмä¼þ¡£¿Í»§¶ËÇëÇóµ½´ï·þÎñÆ÷Ö®ºó£¬»á°´ÕÕÖмä¼þ¶¨ÒåµÄÏȺó˳ÐòÒÀ´Î½øÐе÷Óã¬Ê¾Àý´úÂëÈçÏ£º
app.use(function(req,res,next){//µÚ1¸öÈ«¾ÖÖмä¼þ
console.log('µ÷ÓÃÁ˵Ú1¸öÈ«¾ÖÖмä¼þ'£©
next()
}£©
app.use(function(req,res,next){//µÚ2¸öÈ«¾ÖÖмä¼þ
console.log('µ÷ÓÃÁ˵Ú2¸öÈ«¾ÖÖмä¼þ'£©
next()
1}£©
app.get£¨'/user'£¬£¨req,res)=>{//ÇëÇóÕâ¸ö·ÓÉ£¬»áÒÀ´Î´¥·¢ÉÏÊöÁ½¸öÈ«¾ÖÖмä¼þ
res.send('Home page.')
}£©
²»Ê¹ÓÃapp.use() ¶¨ÒåµÄÖмä¼þ£¬½Ð×ö¾Ö²¿ÉúЧµÄÖмä¼þ£¬Ê¾Àý´úÂëÈçÏ£º
//¶¨ÒåÖмä¼þº¯Êýmw1
const mw1 = function(req, res, next) (
cosole.log('ÕâÊÇÖмä¼þº¯Êý')
next()
}
//mN1
Õâ¸öÖмä¼þÖ»ÔÚ“µ±Ç°Â·ÓÉÖÐÉúЧ”£¬ÕâÖÖÓ÷¨ÊôÓÚ“¾Ö²¿ÉúЧµÄÖмä¼þ”
app.get('/',mwi,function(req,res){
res.send('Home page.')
})
//mw1Õâ¸öÖмä¼þ²»»áÓ°ÏìÏÂÃæÕâ¸ö·ÓÉ£¡+
app.get('/user',
function(req, res) { res.send('User page.') })
¿ÉÒÔÔÚ·ÓÉÖУ¬Í¨¹ýÈçÏÂÁ½Öֵȼ۵ķ½Ê½£¬Ê¹Óöà¸ö¾Ö²¿Öмä¼þ£º
//ÒÔÏÂÁ½ÖÖд·¨ÊÇ“ÍêÈ«µÈ¼Û“µÄ£¬¿É¸ù¾Ý×Ô¼ºµÄϲºÃ£¬Ñ¡ÔñÈÎÒâÒ»ÖÖ·½Ê½½øÐÐʹÓÃ
apg.get('/',mw1,mw2,(req,res)=>{res.send('Home page.')})
app.get('/',[mw1,mw2],(req,res)=>{ res.send('Home page.') })
×¢Ò⣺һ¶¨ÒªÔÚ·ÓÉ֮ǰע²áÖмä¼þ£¬¿Í»§¶Ë·¢Ë͹ýÀ´µÄÇëÇ󣬿ÉÒÔÁ¬Ðøµ÷Óöà¸öÖмä¼þ½øÐд¦Àí¡£Ö´ÐÐÍêÖмä¼þµÄÒµÎñ´úÂëÖ®ºó£¬²»ÒªÍü¼Çµ÷ÓÃnext() º¯Êý¡£ÎªÁË·ÀÖ¹´úÂëÂß¼»ìÂÒ£¬µ÷ÓÃnext() º¯Êýºó²»ÒªÔÙд¶îÍâµÄ´úÂë¡£Á¬Ðøµ÷Óöà¸öÖмä¼þʱ£¬¶à¸öÖмä¼þÖ®¼ä£¬¹²Ïíreq ºÍres ¶ÔÏó¡£
ΪÁË·½±ã´ó¼ÒÀí½âºÍ¼ÇÒäÖмä¼þµÄʹÓã¬Express ¹Ù·½°Ñ³£¼ûµÄÖмä¼þÓ÷¨£¬·Ö³ÉÁË5 ´óÀ࣬·Ö±ðÊÇ£º
¢ÙÓ¦Óü¶±ðµÄÖмä¼þ
¢Ú·Óɼ¶±ðµÄÖмä¼þ
¢Û´íÎó¼¶±ðµÄÖмä¼þ
¢ÜExpress ÄÚÖõÄÖмä¼þ
¢ÝµÚÈý·½µÄÖмä¼þ
ͨ¹ýapp.use() »òapp.get() »òapp.post() £¬°ó¶¨µ½app ʵÀýÉϵÄÖмä¼þ£¬½Ð×öÓ¦Óü¶±ðµÄÖмä¼þ£¬´úÂëʾÀýÈçÏ£º
//Ó¦Óü¶±ðµÄÖмä¼þ£¨È«¾ÖÖмä¼þ£©
app.use((req,res,next)=>{
next()
}£©
//Ó¦Óü¶±ðµÄÖмä¼þ£¨¾Ö²¿Öмä¼þ£©
app.get('/',mwi,(req, res) =>{
res.send('Home page.')
}£©
°ó¶¨µ½express.Router() ʵÀýÉϵÄÖмä¼þ£¬½Ð×ö·Óɼ¶±ðµÄÖмä¼þ¡£ËüµÄÓ÷¨ºÍÓ¦Óü¶±ðÖмä¼þûÓÐÈκÎÇø±ð¡£Ö»²»¹ý£¬Ó¦Óü¶±ðÖмä¼þÊǰ󶨵½app ʵÀýÉÏ£¬Â·Óɼ¶±ðÖмä¼þ°ó¶¨µ½router ʵÀýÉÏ£¬´úÂëʾÀýÈçÏ£º
var app = express()
var router = express.Router(
//·Óɼ¶±ðµÄÖмä¼þ
router.use(function (req, res, next) (
console.log('Time:', Date.now())
next()
}£©
app.use('/', router)
´íÎó¼¶±ðÖмä¼þµÄ×÷Óãº×¨ÃÅÓÃÀ´²¶»ñÕû¸öÏîÄ¿Öз¢ÉúµÄÒì³£´íÎ󣬴Ӷø·ÀÖ¹ÏîÄ¿Òì³£±ÀÀ£µÄÎÊÌâ¡£
¸ñʽ£º´íÎó¼¶±ðÖмä¼þµÄfunction ´¦Àíº¯ÊýÖУ¬±ØÐëÓÐ4 ¸öÐβΣ¬ÐβÎ˳Ðò´Óǰµ½ºó£¬·Ö±ðÊÇ(err, req, res, next)¡£
app.get('/', function (req, res){ // 1.·ÓÉ
throw new
Error£¨'·þÎñÆ÷ÄÚ²¿·¢ÉúÁË´íÎó£¡'£© // 1.1Å׳öÒ»¸ö×Ô¶¨ÒåµÄ´íÎó
res.send('Home
Page.')
})
app.use(function(err,req,res,next){ // 2.´íÎó¼¶±ðµÄÖмä¼þ
console.log('·¢ÉúÁË´íÎó£º'+err.message) //2.1ÔÚ·þÎñÆ÷´òÓ¡´íÎóÏûÏ¢
res.send('Error!'+
err.message) //2.2Ïò¿Í»§¶ËÏìÓ¦´íÎóÏà¹ØµÄÄÚÈÝ
}£©
×¢Ò⣺´íÎó¼¶±ðµÄÖмä¼þ£¬±ØÐë×¢²áÔÚËùÓзÓÉÖ®ºó!
×ÔExpress 4.16.0 °æ±¾¿ªÊ¼£¬Express ÄÚÖÃÁË3 ¸ö³£ÓõÄÖмä¼þ£¬¼«´óµÄÌá¸ßÁËExpress ÏîÄ¿µÄ¿ª·¢Ð§ÂʺÍÌåÑ飺
¢Ùexpress.static¿ìËÙÍйܾ²Ì¬×ÊÔ´µÄÄÚÖÃÖмä¼þ£¬ÀýÈ磺HTML Îļþ¡¢Í¼Æ¬¡¢CSS ÑùʽµÈ(ÎÞ¼æÈÝÐÔ)
¢Úexpress.json½âÎöJSON ¸ñʽµÄÇëÇóÌåÊý¾Ý(ÓмæÈÝÐÔ£¬½öÔÚ4.16.0+ °æ±¾ÖпÉÓÃ)
¢Ûexpress.urlencoded½âÎöURL-encoded ¸ñʽµÄÇëÇóÌåÊý¾Ý(ÓмæÈÝÐÔ£¬½öÔÚ4.16.0+ °æ±¾ÖпÉÓÃ)
//ÅäÖýâÎö application/json ¸ñʽÊý¾ÝµÄÄÚÖÃÖмä¼þ
app.use(express.json())
//ÅäÖýâÎö application/x-ww-form-urlencoded ¸ñʽÊý¾ÝµÄÄÚÖÃÖмä¼þ
app.us(express.urlencoded({ extended:false }))
·ÇExpress ¹Ù·½ÄÚÖõ쬶øÊÇÓɵÚÈý·½¿ª·¢³öÀ´µÄÖмä¼þ£¬½Ð×öµÚÈý·½Öмä¼þ¡£ÔÚÏîÄ¿ÖУ¬´ó¼Ò¿ÉÒÔ°´ÐèÏÂÔØ²¢ÅäÖõÚÈý·½Öмä¼þ£¬´Ó¶øÌá¸ßÏîÄ¿µÄ¿ª·¢Ð§ÂÊ¡£
ÀýÈ磺ÔÚexpress@4.16.0 ֮ǰµÄ°æ±¾ÖУ¬¾³£Ê¹ÓÃbody-parser Õâ¸öµÚÈý·½Öмä¼þ£¬À´½âÎöÇëÇóÌåÊý¾Ý¡£Ê¹Óò½ÖèÈçÏ£º
¢ÙÔËÐÐnpm install body-parser°²×°Öмä¼þ
¢ÚʹÓÃrequireµ¼ÈëÖмä¼þ
¢Ûµ÷ÓÃapp.use() ×¢²á²¢Ê¹ÓÃÖмä¼þ
×¢Ò⣺Express ÄÚÖõÄexpress.urlencodedÖмä¼þ£¬¾ÍÊÇ»ùÓÚbody-parser Õâ¸öµÚÈý·½Öмä¼þ½øÒ»²½·â×°³öÀ´µÄ¡£
2023аæÇ°¶ËAJAXÈëÃŵ½ÊµÕ½È«Ì׽̳Ì
2023-09-05ǰ¶ËJavaScriptÈëÃŵ½¾«Í¨È«Ì×jsÊÓÆµ½Ì³Ì£¨»ù´¡+Ó¦ÓÃ+½ø½×£©
2023-09-05instanceofÓëtypeof()µÄÇø±ð?
2023-08-31CanvasÔõÑùÐÞ¸ÄÏßÌõµÄ¿í¶È¡¢ÑÕÉ«ºÍÐÎ×´£¿
2023-08-30ʲôÊÇǰ¶Ë£¿ÎªÊ²Ã´ÍƼö±à³ÌС°×ѧǰ¶Ë£¿
2023-08-30Vue.minxinµÄʹÓó¡¾°ºÍÔÀíÊÇʲô?_webǰ¶Ë¼¼ÄÜÅàѵ
2023-08-30
±±¾©Ð£Çø