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

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

在該函數(shù)里面沒有發(fā)現(xiàn)如何處理傳入?yún)?shù)的實現(xiàn)...

在該函數(shù)里面沒有發(fā)現(xiàn)如何處理傳入?yún)?shù)的實現(xiàn)...

神不在的星期二 2023-04-04 22:18:07
最近看了NodeJS的Connect框架的代碼,查看文檔得知Coonect的使用方法如下:// 由API文檔明顯知道,可以這樣調(diào)用createServer     // HTTP     var server = connect.createServer(         connect.logger()       , connect.static(__dirname + '/public')     );    // HTTPS     var server = connect.createServer(         { key: key, cert: cert }       , connect.logger()       , connect.static(__dirname + '/public')     );    // 或者直接:     connect(         connect.logger()       , connect.static(__dirname + '/public')     ).listen(3000);翻看Connect的源代碼得知connect.createServer函數(shù)的實現(xiàn)如下:function createServer() {       function app(req, res){ app.handle(req, res); }       utils.merge(app, proto);      app.stack = [];      return app;     };繼續(xù)跟蹤其proto.js的實現(xiàn)代碼,只有app.use和app.handle兩個函數(shù),并沒有發(fā)現(xiàn)在哪里調(diào)用了...但可以很肯定connect.createServer()返回的是NodeJS核心的http lib里面的http.Server的實例。我目前的水平就只能到這里了:)由于暫時沒有安裝NodeJS的環(huán)境[ 不好意思,偶在網(wǎng)吧:)( ],所以請有NodeJS環(huán)境的童鞋麻煩Debug一下,能夠分析一下Connect的調(diào)用過程,特別是createServer運行的過程,以及實現(xiàn)好的“中間件”是如何進入到connect的中間件的“大循環(huán)”里面的。萬分感謝!求NodeJS大俠出來拯救我??!謝謝!
查看完整描述

2 回答

?
慕絲7291255

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

function createServer() {          if ('object' == typeof arguments[0]) {            return new HTTPSServer(arguments[0], 
    `        `Array.prototype.slice.call(arguments, 1)
            );
          } else {            return new HTTPServer(              Array.prototype.slice.call(arguments)
            );
          }
        };


查看完整回答
反對 回復(fù) 2023-04-07
?
PIPIONE

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

首先回答你一下 為什么createServer()沒有參數(shù)而他的api調(diào)用仍然使用了參數(shù)...
這是一個js的基礎(chǔ)知識..函數(shù)的參數(shù)是在函數(shù)執(zhí)行前執(zhí)行的..他這個寫法的意思是在connect.createServer()執(zhí)行前 先執(zhí)行下connect.logger()、connect.static(__dirname + '/public')之類的。雖說有點裝逼但是很簡潔..
建議寫成

connect.createServer()
       .use(connect.favicon())
       .use(connect.logger())
       .use(connect.static(__dirname + '/public'))
       .listen(3000);

你就更好理解了...


查看完整回答
反對 回復(fù) 2023-04-07
  • 2 回答
  • 0 關(guān)注
  • 254 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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