亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

在該函數里面沒有發現如何處理傳入參數的實現...

在該函數里面沒有發現如何處理傳入參數的實現...

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

2 回答

?
慕絲7291255

TA貢獻1859條經驗 獲得超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)
            );
          }
        };


查看完整回答
反對 回復 2023-04-07
?
PIPIONE

TA貢獻1829條經驗 獲得超9個贊

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

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

你就更好理解了...


查看完整回答
反對 回復 2023-04-07
  • 2 回答
  • 0 關注
  • 257 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號