路由及中间件,MVC
url
通常url由host,port,path来组成,比如[“http://xxx.com/users/profile”],所谓路由就是决定如何处理/users/profile这个路径,一个路由对应着一个界面,这样只要输入不同的路由,就会展示不同的界面,而不需要刷新界面,类似于选项卡的功能。
中间件
中间件:在收到请求后和发送响应之前这个阶段执行的一些函数,用来完成一些数据的处理。
可以使用express对象的use方法。插入一个中间件,如下:
app.use([path,] function [, function...])
分类:分为如下几种
1、应用级中间件:处理静态资源目录
2、路由中间件:暴露一个路由接口
3、错误处理中间件:处理错误
Router对象:当express实例的路由越来越多的时候,最好把路由分类独立出去,express的实例(app) 能更好的处理其他逻辑流程。Express的Router对象是一个简化的 app实例,只具有路由相关的功能,包括use, http verbs等等。最后这个Router再通过app的use挂载到app的相关路径下。
MVC
node.js express中的MVC模式
Model :
数据结构层,由控制层操作,进行相关数据处理。
view :
express生成项目时会产生views,里面存放一些模板文件,比如ejs文件。
Controller :
即视图向控制器发出请求,由控制器选择相应的模型来处理模型返回的结果给控制器,由控制器来选择合适的视图,生成界面给用户。
运行顺序:
在web服务启动时,就已经加载了app.js ,需要在appjs里面定义一下路由,
var docRoute = require('./app/routes/position.js');
app.use('/doc', PositionRoute);
1、用户发起请求,http://www.xxxxx.club/doc/getList
2、app已经设置了doc的路由
3、然后node server,解析PositionRoute,juti定位到./app/routes/position.js里。
4、根据详细路由,然后指定控制器里面到具体操作。
5、进入控制器(controller),执行具体操作。
6、若操作涉及model层,则调用model层相关数据结构。
6、然后由控制器将数据返回给用户。
以上为三者关系图