软件教程 2025年08月6日
0 收藏 0 点赞 406 浏览 3293 个字
摘要 :

文章目录 1. 安装 express: 2.安装 http-proxy-middleware 3.创建一个 Node.js 服务器,使用 express 框架和 http-proxy-middleware 中间件 4.部署多个前端工程 5.在后……




  • 1. 安装 express:
  • 2.安装 http-proxy-middleware
  • 3.创建一个 Node.js 服务器,使用 express 框架和 http-proxy-middleware 中间件
  • 4.部署多个前端工程
  • 5.在后台运行node服务
    • 5.1 打开终端,进入到你的 Node.js 项目目录
    • 5.2 运行以下命令
    • 5.3 检查是否成功启动,可以查看 nohup.out 文件
  • 6. 使用pm2来管理node应用
    • 6.1 安装 pm2
    • 6.2 启动 Node.js 应用
    • 6.3 查看运行中的进程列表
    • 6.4 停止应用
    • 6.5 重启应用
    • 6.6 删除应用
    • 6.7 查看日志
    • 6.8 监控应用性能
    • 6.9 自动启动

    本文主要讲解关于如何使用node部署多个前端项目并实现后端接口转发相关内容,让我们来一起学习下吧!

    在 Node.js 服务器中部署前端文件,并且需要转发后端接口请求的情况下,可以使用代理服务器或中间件来实现接口的转发。可以使用 http-proxy-middleware 中间件来转发接口请求.

    1. 安装 express:

    npm install express
    

    2.安装 http-proxy-middleware

    npm install http-proxy-middleware
    

    3.创建一个 Node.js 服务器,使用 express 框架和 http-proxy-middleware 中间件

    const express = require(\'express\');
    const path = require(\'path\');
    const { createProxyMiddleware } = require(\'http-proxy-middleware\');
    ​
    const app = express();
    const port = 3000;
    ​
    // 静态文件目录,假设前端代码构建后的文件在 \"dist\" 目录中
    app.use(express.static(path.join(__dirname, \'dist\')));
    ​
    // 设置代理,将以 \"/api\" 开头的请求转发到后端服务器
    app.use(\'/api\', createProxyMiddleware({ target: \'http://backend-api-server\', changeOrigin: true }));
    ​
    // 所有路由都返回 index.html,交由前端路由处理
    app.get(\'*\', (req, res) => {
      res.sendFile(path.join(__dirname, \'dist\', \'index.html\'));
    });
    ​
    // 启动服务器
    app.listen(port, () => {
      console.log(`Server is running at http://localhost:${port}`);
    });
    ​
    
    • express.static 中间件用于提供静态文件服务。
    • createProxyMiddleware 用于设置代理,将以 “/api” 开头的请求转发到后端 API 服务器。你需要将 \'http://backend-api-server\' 替换为实际的后端 API 地址。
    • 对于其他路由,都返回前端的 index.html,由前端路由处理。

    4.部署多个前端工程

    const express = require(\'express\');
    const path = require(\'path\');
    const { createProxyMiddleware } = require(\'http-proxy-middleware\');
    ​
    const app1 = express();
    const app2 = express();
    const port = 3000;
    ​
    // 静态文件目录,假设前端代码构建后的文件在各自的 \"dist\" 目录中
    app1.use(express.static(path.join(__dirname, \'frontend1\', \'dist\')));
    app2.use(express.static(path.join(__dirname, \'frontend2\', \'dist\')));
    ​
    // 路由配置
    app1.get(\'/\', (req, res) => {
      res.sendFile(path.join(__dirname, \'frontend1\', \'dist\', \'index.html\'));
    });
    ​
    app2.get(\'/\', (req, res) => {
      res.sendFile(path.join(__dirname, \'frontend2\', \'dist\', \'index.html\'));
    });
    ​
    // 设置代理,将以 \"/api\" 开头的请求转发到后端服务器
    app.use(\'/api\', createProxyMiddleware({ target: \'http://backend-api-server\', changeOrigin: true }));
    ​
    // 启动服务器
    app1.listen(port + 1, () => {
      console.log(`Frontend 1 is running at http://localhost:${port + 1}`);
    });
    ​
    app2.listen(port + 2, () => {
      console.log(`Frontend 2 is running at http://localhost:${port + 2}`);
    });
    ​
    

    确保你的前端工程文件结构类似如下:

    project-root
    |-- frontend1
    |   `-- dist
    |       |-- index.html
    |       |-- ...
    |-- frontend2
    |   `-- dist
    |       |-- index.html
    |       |-- ...
    |-- server.js
    

    5.在后台运行node服务

    在 Linux 中,你可以使用 nohup 命令将 Node.js 服务在后台运行。

    5.1 打开终端,进入到你的 Node.js 项目目录

    5.2 运行以下命令

    nohup node your_server_file.js &
    
    • your_server_file.js 是你的 Node.js 服务器入口文件。
    • nohup 是一个命令,用于使命令在后台运行,并忽略挂断信号。
    • & 表示将命令放到后台运行。

    5.3 检查是否成功启动,可以查看 nohup.out 文件

    cat nohup.out
    

    这个文件会包含 Node.js 服务器的输出日志.

    如果你希望后台运行的同时保存日志,可以使用 nohup 的输出重定向

    nohup node your_server_file.js > your_log_file.log 2>&1 &
    

    your_log_file.log 是你想要保存日志的文件名。

    在生产环境中,可能需要使用更高级的工具来管理 Node.js 进程,例如 pm2pm2 提供了更多的功能,如进程守护、自动重启、性能监控等,可以更方便地管理 Node.js 应用。

    6. 使用pm2来管理node应用

    pm2 是一个强大的 Node.js 进程管理工具,它提供了许多有用的功能,如进程守护、自动重启、性能监控等.

    6.1 安装 pm2

    npm install -g pm2
    

    6.2 启动 Node.js 应用

    pm2 start your_server_file.js
    

    6.3 查看运行中的进程列表

    pm2 list
    

    6.4 停止应用

    pm2 stop your_app_name_or_id
    

    your_app_name_or_id 是你启动的应用的名称或 ID,可以在 pm2 list 中查看。

    6.5 重启应用

    pm2 restart your_app_name_or_id
    

    6.6 删除应用

    pm2 delete your_app_name_or_id
    

    6.7 查看日志

    pm2 logs your_app_name_or_id
    

    6.8 监控应用性能

    pm2 monit
    

    这将打开一个监控界面,显示应用的 CPU 和内存使用情况。

    6.9 自动启动

    pm2 startup
    

    使用命令将应用设置为系统启动时自动启动

    以上就是关于如何使用node部署多个前端项目并实现后端接口转发相关的全部内容,希望对你有帮助。欢迎持续关注潘子夜个人博客(www.panziye.com),学习愉快哦!

微信扫一扫

支付宝扫一扫

版权: 转载请注明出处:https://www.zuozi.net/6622.html

管理员

相关推荐
2025-08-06

文章目录 一、Promise基础回顾 二、Promise 与 axios 结合使用场景及方法 (一)直接返回 axios …

269
2025-08-06

文章目录 一、模块初始化时的内部机制 二、常见导出写法的差异分析 (一)写法一:module.exports…

107
2025-08-06

文章目录 一、ResizeObserver详解 (一)ResizeObserver是什么 (二)ResizeObserver的基本用法 …

683
2025-08-06

文章目录 一、前期准备工作 (一)下载相关文件 (二)安装必要工具 二、处理扣子空间生成的文件…

338
2025-08-06

文章目录 一、官方文档 二、自动解包的数据类型 ref对象:无需.value即可访问 reactive对象:保持…

371
2025-08-06

文章目录 一、Hooks的工作原理 二、在if语句中使用Hook会出什么岔子? 三、React官方的Hook使用规…

843
发表评论
暂无评论

还没有评论呢,快来抢沙发~

助力内容变现

将您的收入提升到一个新的水平

点击联系客服

在线时间:08:00-23:00

客服QQ

122325244

客服电话

400-888-8888

客服邮箱

122325244@qq.com

扫描二维码

关注微信客服号