// 主檔案
function
() = url.parse(req.url, true);
let requestmethod = req.method.tolowercase();
let i = 0
function next(err) `);
let = layer; // 取出來的路徑 可能是正則型別
if (err) else
} else else
} else ); // 把兩個陣列合併成乙個物件
return callback(req, res);
} else
} else else }}
}}
next();
}server.listen(...args);
};// 中介軟體
// 中介軟體第乙個路徑引數未傳預設
if (typeof callback !== 'function')
let layer =
};// 請求get、post...
[...methods, 'all'].foreach(method => );
path = new regexp(path);
path.params = params; // 把匹配到的陣列 存在路徑上
}let layer = }})
// 新增預設的一些請求和響應屬性
let = require('url').parse(req.url, true);
req.query = query;
req.path = pathname;
res.send = function (value) else
if (typeof value === 'object')
}next();})}
// 靜態服務
let path = require('path');
return
function (req, res, next) else else else})}
}})}}
複製**
node學習篇之框架express
前面也有提到,和node搭配的框架主要有express koa hapi。express框架比較完善 穩定 文件全 社群大,koa框架比較超前,hapi這個框架的話比較複雜 適合做複雜的大型專案。所以這裡介紹的是express框架和node的乙個搭配。首先,對express框架做乙個簡單的介紹 ex...
Scrapy框架CrawSpider原始碼分析
這一期的文章我們來分析一下 scrapy 框架中 crawspider 類的原始碼,希望能夠加深對其處理邏輯的理解。crawlspider 繼承了 spider,其入口函式是 start requests,該函式的 callback 為 crawlspider 下的 parse 函式。def par...
node框架express路由的大致原理
昨晚準備洗澡的時候,突然想實現一下express的路由邏輯,但時間有限,只能先寫這麼多。這個不完全是express的路由原理,只是提供一點思路,具體邏輯可以參考原始碼,express的路由,好不好不敢說,但是做法挺新穎的,給我乙個新的思想。function layer config else lay...