同步操作将从 xuezi/koa_server 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
####工具包 主要用于处理数据操作和一些常用的封装方法 所有工具文件都放在/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接口上,获取接口的详细内容只要访问该方法即可
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。