首先來看這一部分代碼瀏覽器
1 /** 2 * Created by bsn on 14-7-1. 3 */ 4 var connect = require('connect'); 5 6 var app = connect(); 7 function hello(req, res, next) { 8 console.log(req.url); 9 res.end('hello bsn'); 10 next(); 11 } 12 13 function helloAgain(req, res) { 14 console.log('hello again'); 15 res.end('hello again'); 16 } 17 18 app.use(hello) 19 .listen(3000);
若是請求http://localhost:3000app
這一部分代碼的輸出是什麼(控制檯和瀏覽器中)?學習
首先想到的第一個答案多是ui
瀏覽器:hello bsnhello againurl
控制檯:/spa
然而實際上輸出的是:code
瀏覽器:hello bsnblog
控制檯:/it
/favicon.icoio
爲何?
關於控制檯的輸出結果是由於請求了兩次,除了咱們手動觸發的那一次,還包括瀏覽器自動去請求圖標的那一次,這一點天然好理解
那關於瀏覽器爲何輸出的不是hello bsnhello again呢?
由於在第一次請求的時候,在hello方法處理中使用了res.end(...);即resonse已經結束,後面的響應就失效,若是hello方法是這樣寫的:
1 function hello(req, res, next) { 2 console.log(req.url); 3 res.write('hello bsn'); 4 next(); 5 }
那結果就是瀏覽器輸出hello bsnhello again
關於這個模塊本身知識剛開始接觸,後續本身也會深刻去學習