接口(Controller),承载了定义接口的角色,通过对服务(Service)的组合,封装出具体的业务接口。
我们首先定义一个接口,如:
module.exports = {
async HelloController(ctx) {
// 业务处理
//...
}
}
此时这个方法就是一个接口,然后我们需要在接口定义处理的功能接口。
如我们定义一个返回'hello world'
module.exports = {
async HelloController(ctx) {
ctx.body('hello world');
}
}
如需要根据传参进行区分处理,如Router层定义GET接口/hello,传入参数name(路由配置请参考Router层介绍)
/*
@method GET
@path /hello
@param {string} name
*/
module.exports = {
async HelloController(ctx) {
//GET方法传参,可在ctx.request.query中获得,参考中间件bodyParsePath定义
const name = ctx.request.query.name
ctx.body(`hello ${name}`);
}
}
如参数name为akos,则返回hello akos
假设有有文件src/server/user.js