1 Star 0 Fork 2

颖火虫 / koa_server

forked from xuezi / koa_server 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

基于koa@v2的后端框架

####工具包 主要用于处理数据操作和一些常用的封装方法 所有工具文件都放在/tools/文件夹下,以.t.js结尾区分 工具包包括了mongodb的封装,bmob短信模块,七牛云存储等

####类文件 类文件放在/class/文件夹下,不同作用的类模块分在了不同的文件夹下 具体类文件书写请参照文件夹中的任意案例

####接口文件 接口文件放在/complex/interface/文件夹下,不同作用的接口文件被放在不同的文件夹下

####接口书写说明 一个接口文件主要包含prefix和method prefix作为接口地址的前缀 method为客户端发送请求的方法,包括[post,get,put,delete] method中书写具体的接口内容,key作为主要的接口后缀

每一个接口内容都包括des,method两个字段

des为接口的主要说明,包含name(接口名称)、content(接口中文说明)、parmas(Array,接口涉及参数)
parmas是一个json数组,每一个元素包含key(字段名)和type(数据类型)字段

Example: example.r.js
module.exports={
    prefix:"/example/"  //接口地址前缀
    get:{
        "name/:name":{
            des:{
                name:"getName",  //接口名称
                content:"获取名字",  //接口描述
                params:[  //参数集合
                    {
                        params:"name", //params参数
                        type:"string"  //参数类型
                    },
                    {
                        key:"key",  //query参数
                        type:"string"
                    }
                ]
            },
            method:function*(){
                var name=this.params.name; //获取params参数name
                var query=this.request.query; //获取query参数,json
                this.body=name;  //向客户端返回数据
            }
        }
    }
}

####接口的路由注册 接口的注册方法放在/complex/complex.js中 通过遍历/complex/interface/文件夹下的层级接口,遍历出所有接口文件并逐一注册接口事件 具体注册方式请参照文件中的readFiles方法

路由接口注册之后,最后在/server/index.js中绑定到后台端口上    

####客户端发送的数据 body中的数据格式必须是x-www-form-urlencoded,格式介绍请参照网络文档 获取body中的数据,data是一个json:

var data=yield parse(this.request)
url中的parmas获取,url中'?'后面中的数据
var data=this.request.query
在注册接口的时候,一个接口名称的后面如果接着/:key,key可以作为特殊参数传送,key的获取
key=this.parmas.key
一些特殊情况需要用到form-data数据传输,比如上传文件,
处理这类数据的接口需要单独书写,并使用特殊的中间件做数据处理
koa-body可以处理body中的form-data数据,但此功能默认是不开启的,
需要在创建koa-body中间件的时候加入option:{multipart:true}才能处理form-data
处理form-data的接口,需要在des和method之间加入字段multipart:ture,
这样路由在注册接口的时候会为这个接口加上koa-body用来处理form-data
form-data获取文件数据
data=this.request.body.files

####session 通过注册koa-session中间件实现,主要用于保持客户端服务端通讯数据保留 比如在一个会话中,在服务端保留user对象:

this.session.user=_obj

####用到一些node自带的全局变量 __dirname: 当前文件所处路径; __filename: 当前执行操作的文件名,包含完整路径 require: node用于加载模块的方法

####基本说明 后台用到了大量的异步和同步混合操作,理解co和Promise的运行机制是使用本框架的基本要点之一

#所有接口的获取 所有的接口最后都会整合到一个数组中,并单独注册到/allApis接口上,获取接口的详细内容只要访问该方法即可

空文件

简介

koa路由框架示例 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/niefengjun/koa_server.git
git@gitee.com:niefengjun/koa_server.git
niefengjun
koa_server
koa_server
master

搜索帮助