web框架应具备的功能
目标
理清web框架的主要构成部分,辅助以后新语言、新框架的学习
构成
路由
web框架主要用来处理http请求,路由用于将请求交由制定的控制器方法处理, 以koa koa-router为例,将/home这样的请求交由随后的匿名函数处理。
处理静态资源
框架一般会有处理如html、js、css、png的静态资源的机制,能让如/main.css的请求映射到静态目录如static下的main.css文件。koa的第三方koa-static中间件提供这样的功能。
跨域处理
当a.example.com的页面请求b.example.com的api时,就会出现跨域的问题,可以用jsonp去处理,也可以在后端返回相应的跨域headers头来处理跨域请求。koa里可以用cors中间件。
请求体解析
框架一般自带对请求body的解析,这样无论content-type是json、form-data、x-www-form-urlencoded、mutipart/form-data,都能解析出body内容。koa原生并没有提供body的解析,需要依赖第三方如koa-bodyparser。
cookie
cookie是无状态协议http的一种状态机制,框架一般支持对请求头中的cookie进行解析,并提供在上下问对其进行访问并修改。
模板引擎
如果不是采用前后端分离的架构,那么框架一般支持模板引擎,最通常的是添加一个如
renderTemplate
的方法,接受模板名称以及要传入的参数。数据库操作
框架一般对数据库连接、操作有着一些内部的实现,即使没有,也可以通过第三方插件方便地接入数据库操作的能力。