返回
Egg.js项目搭建指南:从构建项目目录到创建第一个API接口
前端
2023-11-13 06:31:21
搭建Egg.js项目
Egg.js是一个基于Node.js和Koa.js的企业级全栈框架,它提供了简单、快速的开发方式,并内置了安全、高效、稳定的基础功能。要搭建一个Egg.js项目,首先需要安装Egg.js脚手架:
npm install -g @eggjs/cli
然后,创建一个新的Egg.js项目:
egg-init my-egg-project
项目创建成功后,会看到一个初始的项目目录结构:
my-egg-project/
├── app/
│ ├── controller/
│ │ └── home.js
│ ├── model/
│ ├── public/
│ ├── router.js
│ ├── service/
│ └── view/
├── config/
├── logs/
├── node_modules/
├── package.json
├── test/
└── www/
创建第一个mock接口
为了演示如何使用Egg.js构建API接口,我们将在home.js
控制器中创建一个名为list
的方法,该方法将返回一个模拟的数据列表。
// app/controller/home.js
module.exports = class HomeController extends Controller {
async list() {
const data = [
{ name: 'John', age: 20 },
{ name: 'Mary', age: 25 },
{ name: 'Bob', age: 30 },
];
this.ctx.body = data;
}
};
然后,在router.js
中设置路由:
// app/router.js
module.exports = app => {
const { router } = app;
router.get('/home/list', 'home.list');
};
现在,可以通过发送HTTP GET请求来访问该接口:
curl http://localhost:7001/home/list
单元测试
为了确保接口的正确性,我们可以编写单元测试。在test/controller/home.test.js
中添加以下测试用例:
// test/controller/home.test.js
const assert = require('assert');
const { app } = require('../mocks/app');
describe('HomeController', () => {
describe('list', () => {
it('should return a list of data', async () => {
const ctx = app.mockContext();
await app.httpRequest().get('/home/list').expect(200).end((err, res) => {
assert.equal(res.body.length, 3);
assert.equal(res.body[0].name, 'John');
assert.equal(res.body[0].age, 20);
assert.equal(res.body[1].name, 'Mary');
assert.equal(res.body[1].age, 25);
assert.equal(res.body[2].name, 'Bob');
assert.equal(res.body[2].age, 30);
});
});
});
});
运行单元测试:
npm run test
如果测试通过,则表明接口工作正常。
总结
本指南介绍了如何使用Egg.js构建项目、创建API接口并进行单元测试。Egg.js是一个强大而灵活的框架,它可以帮助您快速开发高质量的Web应用程序。