Vue + Node.js 从 0 到 1 实现自动化部署工具
// Node.js 服务端代码示例
const express = require('express');
const app = express();
const bodyParser = require('body-parser');
const axios = require('axios');
// 使用 body-parser 中间件解析 JSON 和 urlencoded 数据
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
// 监听 /api/deploy 路径的 POST 请求
app.post('/api/deploy', (req, res) => {
const { branch, commitId, repository } = req.body;
// 调用 GitLab API 获取项目的部署状态
axios.get(`https://gitlab.com/api/v4/projects/${repository}/deployments/statuses`, {
params: {
deployment_id: commitId,
status: 'running'
},
headers: { 'PRIVATE-TOKEN': process.env.GITLAB_ACCESS_TOKEN }
})
.then(response => {
// 处理部署逻辑...
console.log('部署已启动', response.data);
res.status(200).send('部署已启动');
})
.catch(error => {
console.error('部署失败', error);
res.status(500).send('部署失败');
});
});
// 监听指定的端口
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
console.log(`服务器运行在 http://localhost:${PORT}`);
});
这段代码示例展示了如何在Node.js中使用Express框架和axios库来处理来自Vue前端应用的部署请求。它首先使用body-parser
中间件来解析请求体,然后定义了一个监听/api/deploy
路径的POST请求处理函数。在该函数中,它使用axios发送GET请求到GitLab API以获取项目的部署状态,并根据结果处理部署逻辑。最后,它在指定的端口监听请求并在控制台输出服务器运行的URL。
评论已关闭