其实脚手架生成的初始项目目录 app/controller/home.js 已经是个简单的例子。我们只要模仿它就好了。
1.在controller文件夹下新建一个js文件-> test.js
'use strict';
const Controller = require('egg').Controller;
class TestController extends Controller {
async index() {
const { ctx } = this;
const data = { name: 'xiaoming', age: 23 };
ctx.body = {
code: 0,
msg: 'success!',
data,
};
}
}
module.exports = TestController;
2.在app/router.js 文件添加一个接口
router.get('/getData', controller.test.index);
注意路径不要写错,"test"对应controller文件夹里的文件名
3.在浏览器输入接口地址进行测试:
因为上述例子为get请求,所以可以直接输入浏览器进行接口请求。如果想要测试其他请求方式比如post请求,则需要借助postman、postwoman等接口工具。
上述的例子是为了简单的介绍如何编写一个egg接口,data为写死的数据,一般而言data是从数据库获取,但数据库获取到的data是异步的,这就需要改变为以下的写法:
'use strict';
const Controller = require('egg').Controller;
class TestController extends Controller {
async index() { // async await 异步
const dataList = await this.data();
this.ctx.body = {
code: 0,
masg: 'success!',
data: dataList,
};
}
data() {
return new Promise(resolve => {
setTimeout(() => { // 用定时器模拟异步请求
const data = [
{ id: 1, name: 'xiaoming', age: 11 },
{ id: 2, name: 'xiaohong', age: 22 },
{ id: 3, name: 'xiaogang', age: 33 },
];
resolve(data);
}, 1000);
});
}
}
module.exports = TestController;