第4天 路由——路由功能的分析
路由功能是通过url字符串进行路由的。假如已实现了路由功能,会怎么去使用呢?
路由功能的分析
路由功能是通过url字符串进行路由的。假如已实现了路由功能,会怎么去使用呢?通过这种反倒思考,我们先写一段代码,来看看路由功能实现后,如何使用它。通过这种方式,推导出应该如何实现路由的蓝图。
var App = require("stuwebfk").App ,app = new App(); app.get("/about",function(req,res){ ...... }); app.post("/update",function(){ ...... });
以上的代码,可以看到实现路由功能后的使用方式。结合昨天我们实现的get/post的功能,会发现需要在昨天实现的功能代码上做文章。
需要更改App.js
的源代码。
App.prototype.get = function(route,handle){ ...... } App.prototype.post = function(route,handle){ ...... }
可以看出,不但要实现GET/POST处理器的分离,还要实现route路由处理的分离。也就是说,需要两个对象,分别保存GET/POST的路由请求处理。我们定义这两个对象为 route_get_handles
和 route_post_handles
,在分析和实现的过程中,需要循序渐进,不要把解决方式和分析达到完美,然后再去编码实现,这本身是个迭代过程。 所以,眼下的分析应该可以运作,我们就先去实现它,然后再逐步完善。
显然还要在App.js的构造器中做一些改动。
App.js
的构造函数的相关部分代码:
function App(){ // request事件响应函数 function handle(req,res){ // 执行插件函数 function execMiddle(){ var middle = middleList[middleIndex]; if(middle){ middle(req,res,next); }else{ // 需要做文章的地方 } } } }
下一节,我们将实现分析的结论。
很赞哦! ( 0
)