返回

从零实现CI/CD(二):Node服务部署及前后端联调

前端

前言

在上一篇文章中,我们学习了如何使用Jenkins搭建CI/CD流水线,并完成了代码的自动构建和单元测试。在本文中,我们将进一步了解如何将构建好的Node.js服务部署到服务器,并与前端应用进行联调,最终将服务与MySQL数据库连接,完成一个完整的Node.js前后端项目。

部署Node.js服务

1. 准备工作

在部署Node.js服务之前,我们需要做一些准备工作:

  • 确保Node.js和Nginx已安装在服务器上。
  • 创建一个新的Node.js项目,并安装必要的依赖包。
  • 在项目中编写一个简单的Node.js服务,该服务可以处理HTTP请求并返回相应的数据。
  • 在服务器上创建一个新的目录,用于存放Node.js服务。

2. 构建Node.js服务

在完成准备工作后,我们可以使用Jenkins构建Node.js服务。

  1. 在Jenkins中创建一个新的任务,并选择“构建一个自由风格的软件项目”模板。
  2. 在任务名称中输入“构建Node.js服务”,并在项目URL中输入项目代码的版本控制地址。
  3. 在构建步骤中添加以下内容:
- npm install
- npm run build
  1. 在构建完成后添加以下内容:
- 将构建好的文件复制到服务器上的目标目录
- 启动Node.js服务

3. 设置Nginx代理

为了使Node.js服务可以通过域名访问,我们需要使用Nginx作为代理服务器。

  1. 在Nginx配置文件中添加以下内容:
server {
  listen 80;
  server_name example.com;

  location / {
    proxy_pass http://127.0.0.1:3000;
  }
}
  1. 重启Nginx服务。

现在,就可以通过访问域名来访问Node.js服务了。

解决跨域问题

当前端应用与Node.js服务部署在不同的域名下时,就会出现跨域问题。为了解决这个问题,我们需要在Node.js服务中设置允许跨域的HTTP头。

在Node.js服务中添加以下代码:

app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
  next();
});

这样,前端应用就可以跨域访问Node.js服务了。

连接MySQL数据库

为了使Node.js服务能够连接MySQL数据库,我们需要安装MySQL客户端库。

在Node.js项目中安装MySQL客户端库:

npm install mysql

在Node.js服务中连接MySQL数据库:

const mysql = require('mysql');

const connection = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  password: 'password',
  database: 'database_name'
});

connection.connect(function(err) {
  if (err) throw err;
  console.log("Connected!");
});

现在,Node.js服务就可以连接MySQL数据库了。

结语

在本文中,我们学习了如何将Node.js服务部署到服务器,并与前端应用进行联调,最终将服务与MySQL数据库连接,完成了一个完整的Node.js前后端项目。通过本文的学习,相信大家对Node.js的开发和部署有了更深入的了解。