- koa介绍
koa是基于node的一个web框架,使用优雅的async和await语法来解决了大量的回调函数过程,采用洋葱圈的中间件模型,极大的便于我们书写服务端程序
- koa项目的构建
项目环境依赖于node推荐node v8.12及以上,使用koa2提供的脚手架koa-generator进行项目构建,安装脚手架命令npm install -g koa-generator进行全局安装
- 项目构建命令
- koa2 test-project
- npm install
- npm run dev
- 项目默认启动在3000端口,默认安装koa-router
- 项目核心目录和文件 介绍
- bin目录里的www为项目入口,通过它引入app.js配置内容
- node_moudel为模块加载生成的文件夹,里面全是模块功能的源码。
- public目录是公共文件夹,放一些样式文件、页面js文件、图片。
- routers目录,里面存放着路由功能的文件,功能为分发请求。
- views为视图文件,文件可以是pub,jade,html
- app.js文件:是项目的核心配置文件,其他文件都是依赖此文件,里面可以进行中间件的应用,路由文件的引入,服务端解决前端跨域方案也在此处处理,推荐使用插件koa2-cors
- 推荐增加的项目目录middleware可以用于存放中间件文件,koa中核心的中间件介绍
-
koa-router:koa为了自己的简洁并没有携带路由功能,koa-router提供了全面的路由功能,支持get,post,put等请求,支持路由命名添加前缀,路由嵌套等功能
-
koa-bodyparser:用于解析request body,支持x-www-form-urlencoded, application/json等格式的请求体,但不支持form-data的请求体,需要借助 formidable 这个库,也可以直接使用 koa-body 或 koa-better-body
-
koa-view:koa-views对需要进行视图模板渲染的应用是个不可缺少的中间件,支持ejs, nunjucks等众多模板引擎
-
不使用脚手架搭建项目,最基础的koa项目文件,直接使用node执行此文件就是一个简单的服务端程序,访问localhost:3000就可以得到请求的结果Hello World
ctx参数解释
ctx.req是node的request对象,里面get请求的query参数对象以及post请求放在消息实体body中的参数列表,还有ctx.req.url等
ctx.res是node的response对象