我最近開始使用node.js,表示& mongodb。由於express使用connect來提供中間件支持,我開始閱讀中間件並連接。有人可以解釋howtonode包裝成語的函數嗎?
我碰到下面的例子來到howtonode.org:
return function logItHandle(req, res, next) {
var writeHead = res.writeHead; // Store the original function
counter++;
// Log the incoming request
console.log("Request " + counter + " " + req.method + " " + req.url);
// Wrap writeHead to hook into the exit path through the layers.
res.writeHead = function (code, headers) {
res.writeHead = writeHead; // Put the original back
// Log the outgoing response
console.log("Response " + counter + " " + code + " " + JSON.stringify(headers));
res.writeHead(code, headers); // Call the original
};
// Pass through to the next layer
next();
};
有人能向我解釋什麼是在這個封閉發生?筆者稱其爲
包裝成語掛接到調用writeHead
這是什麼意思?
感謝兩個傢伙!我只接受@matt的回答,因爲它不僅解釋了發生了什麼,而且讓我瞭解了AOP,現在我已經有了一些新的材料可供使用。 – zeusdeux 2013-03-11 21:31:46