README
titbit框架的api组件
通过中间件的形式提供一个前后端通用的方案,使用JSON格式,属性status作为状态标识。当然,可以设置rest选项为true利用HTTP状态码作为请求正确的判断标志。
使用
const titbit = require('titbit');
const tapi = require('titbit-api');
let api = new tapi({
//使用捕获错误的方式,
//程序的执行错误不会返回500,会正确返回JSON数据,但是status属性是ERROR。
catchError: true
});
let app = new titbit();
//添加中间件,api.mid函数会生成对应的中间件函数。
//这之后,请求和中间件中可以通过c.apiset返回数据。
app.use(api.mid());
//客户端通信的文件写入到apicli.js文件,交给前端,前端开发者自行决定如何使用。
//把api挂载到window对象上,这样会全局可以使用api直接调用。
//api中的request用于发起请求。
api.writeClientFile('./apicli.js', 'window');
//...
REST模式
const titbit = require('titbit');
const tapi = require('titbit-api');
let api = new tapi({
catchError: true,
rest : true
});
let app = new titbit();
//添加中间件,api.mid函数会生成对应的中间件函数。
//这时候,apiset会把第一个参数作为HTTP的状态码。
app.use(api.mid());
//客户端通信的文件写入到apicli.js文件,交给前端,前端开发者自行决定如何使用。
//把api挂载到window对象上,这样会全局可以使用api直接调用。
//api中的request用于发起请求。
api.writeClientFile('./apicli.js', 'window');
c.apiset
在运行以上代码,添加中间件后,请求上下文中会存在apiset接口用于设置返回的数据。参数格式:
普通API模式
/**
* @param {string} st 字符串状态码
* @param {stirng|array|object|buffer|number} data 要返回的数据
*/
c.apiset = (st, data = null) => {
c.res.body = self.ret(st, data)
}
REST模式
/**
* @param {string} st HTTP状态码
* @param {stirng|array|object|buffer|number} data 要返回的数据
*/
c.apiset = (st, data = null) => {
c.status(st)
c.res.body = data
}