自定义路由
调用方式:app.mount
文件挂载
开发者可以通过调用该接口来挂载自定义的路由,挂载方式有两种:
const app = require('ibird-core');
// 方式一:单个函数
app.mount(function (router) {
// router为koa-router实例
router.get('/test/v1', (ctx) => {
const query = ctx.query;
const body = ctx.request.body;
console.log('这是一个自定义接口');
console.log('请求参数:', query);
console.log('请求体:', body);
});
router.get('/test/v2/d1001', (ctx) => {
const query = ctx.query;
const body = ctx.request.body;
console.log('这是第二个自定义接口');
console.log('请求参数:', query);
console.log('请求体:', body);
});
});
// 方式二:函数数组
app.mount([
function (router) {
router.get('/test/v1', (ctx) => {
const query = ctx.query;
const body = ctx.request.body;
console.log('这是一个自定义接口');
console.log('请求参数:', query);
console.log('请求体:', body);
});
router.post('/test/v2/d1001', (ctx) => {
const query = ctx.query;
const body = ctx.request.body;
console.log('这是第二个自定义接口');
console.log('请求参数:', query);
console.log('请求体:', body);
});
},
function (router) {
router.get('/test/v3/h3', (ctx) => {
const query = ctx.query;
const body = ctx.request.body;
console.log('这是另一个函数里定义的接口');
console.log('请求参数:', query);
console.log('请求体:', body);
});
}
]);
文件夹挂载
可以指定一个存放所有路由的文件夹,ibird
在启动的时候会递归该文件夹并挂载所有.js
后缀且模块导出为函数的文件。
// 挂载自定义路由
app.mountDir(path.resolve(__dirname, 'src/route'));