下面是一个部署Express服务器并通过CircleCI测试GraphQL API的解决方法,包含了代码示例:
步骤1:安装必要的依赖项 在项目根目录下运行以下命令来安装Express、GraphQL和CircleCI的依赖项:
npm install express graphql
npm install --save-dev jest supertest
步骤2:创建Express服务器
在项目根目录下创建一个名为server.js
的文件,并添加以下代码:
const express = require('express');
const { graphqlHTTP } = require('express-graphql');
const { buildSchema } = require('graphql');
// 定义GraphQL模式
const schema = buildSchema(`
type Query {
hello: String
}
`);
// 定义GraphQL查询的解析器
const root = {
hello: () => 'Hello, World!'
};
// 创建Express服务器实例
const app = express();
// 添加GraphQL中间件
app.use('/graphql', graphqlHTTP({
schema: schema,
rootValue: root,
graphiql: true
}));
// 启动服务器
app.listen(3000, () => {
console.log('Express服务器已启动在http://localhost:3000');
});
步骤3:创建GraphQL API测试
在项目根目录下创建一个名为test.js
的文件,并添加以下代码:
const request = require('supertest');
const app = require('./server');
describe('GraphQL API测试', () => {
it('查询hello字段应该返回Hello, World!', async () => {
const response = await request(app)
.post('/graphql')
.send({ query: '{ hello }' });
expect(response.body.data.hello).toBe('Hello, World!');
});
});
步骤4:配置CircleCI
在项目根目录下创建一个名为.circleci/config.yml
的文件,并添加以下代码:
version: 2
jobs:
build:
docker:
- image: circleci/node:12
steps:
- checkout
- run:
name: 安装依赖
command: npm install
- run:
name: 运行测试
command: npm test
步骤5:部署服务器并测试 将代码提交到版本控制系统并推送到远程仓库。CircleCI将自动运行测试并构建服务器。
注意:为了使CircleCI能够访问GitHub仓库,您需要在CircleCI上配置项目并添加相关的环境变量。
这样,您就成功部署了Express服务器并通过CircleCI测试GraphQL API。