4
使用Node.js的Hello World示例:試圖理解節點createServer回調
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');
我試圖尋找到內http.js createServer「查找」功能,然後將其傳遞兩個對象( 。這上面命名爲「REQ」和「水庫」我已經通過http.js搜索,我發現的唯一的事情是:
exports.createServer = function(requestListener) {
return new Server(requestListener);
};
這是否意味着匿名函數:
function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}
...作爲 'requestListener' 和...
return new Server(requestListener);
...是哪裏REQ和RES對象獲得通過回傳給?
其實'當「請求」事件在服務器對象上發出requestListener'被調用。見.emit('request''的'位置附近['的2017年http.js'線(https://github.com/joyent/node/blob/master/lib/http.js#L2017) –
@丹D.這是否意味着發射經過REQ和RES匿名功能,當服務器收到請求 – JohnGalt
是,通過EventEmitter模式作爲服務器構造有'this.addListener(「請求」,requestListener)?。 '.emit'路由'.emit('request',req,res);'internal' .emit'在這種情況下使用偵聽器列表來處理事件'request',並且相當於調用聽衆傳遞的參數。 –