第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

express的中間件是什么

express的中間件是什么

慕沐林林 2018-10-13 14:28:58
看了文檔,文檔的說明是一系列的函數(shù)但面試官說那不是中間件,只是路由函數(shù)中間件傳入的參數(shù)是options希望有人可以解答一下
查看完整描述

2 回答

?
萬千封印

TA貢獻1891條經(jīng)驗 獲得超3個贊

你說的中間件是一系列函數(shù),從文字角度來說,這個沒錯。
“中間件傳入的參數(shù)是options”,這里的中間件應該只是 第三方中間件。
官方的中間件 是一個很廣的概念,

app.use(function (req, res, next) {
  console.log('Time:', Date.now());
  next();
});

籠統(tǒng)的說,app.use()傳入的任何function都可以叫中間件,但是,這樣就不太專業(yè)了, 你要是傳個函數(shù),什么也不做,或者做一些沒用的事,那自然不能用中間件這么專業(yè)的詞語了,所以,只要你這個function做的是有效的,有用的事,并且實現(xiàn)的好,幫你解決了響應過程中的關鍵問題,就可以叫中間件了。

而那句“中間件傳入的參數(shù)是option”,那只不過是一些封裝好了的第三方中間件而已,類似于cookie-parser。

如果這是面試官說的,只能說他理解太片面了,可能連官方文檔都沒看過。


查看完整回答
反對 回復 2018-10-25
?
慕慕森

TA貢獻1856條經(jīng)驗 獲得超17個贊

我個人覺得你可以直接看官方的樣例里面的幾個例子嘛, 比如 cookie-parser 就是一個典型的也符合你面試官口中的中間件.

function cookieParser(secret, options) {

  return function cookieParser(req, res, next) {

    if (req.cookies) {

      return next();

    }


    var cookies = req.headers.cookie;

    var secrets = !secret || Array.isArray(secret)

      ? (secret || [])

      : [secret];


    req.secret = secrets[0];

    req.cookies = Object.create(null);

    req.signedCookies = Object.create(null);


    // no cookies

    if (!cookies) {

      return next();

    }


    req.cookies = cookie.parse(cookies, options);


    // parse signed cookies

    if (secrets.length !== 0) {

      req.signedCookies = signedCookies(req.cookies, secrets);

      req.signedCookies = JSONCookies(req.signedCookies);

    }


    // parse JSON cookies

    req.cookies = JSONCookies(req.cookies);


    next();

  };

}

不過我個人的理解更傾向于, 只要函數(shù)的實現(xiàn)方式是類似于

function (req, res, next) {  
  //todo something
}

這種方式的函數(shù), 都可以被稱為中間件


查看完整回答
反對 回復 2018-10-25
  • 2 回答
  • 0 關注
  • 1462 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號