一、设置前端项目代理

1. 搭建node express 项目

express 依赖下载

  1. npm install express --save -g
  2. npm install express-generator --save -g

安装“http-proxy-middleware”中间件

  1. npm install --save-dev http-proxy-middleware

创建项目

  1. express 项目名称
  2. cd 项目名称
  3. npm init
  4. npm install

2. 将前端项目包放到目录下

如下图所示:
image.png

3. 创建config.js文件

  1. // 前端项目存放目录和访问端口
  2. var webConfig = {
  3. webPath: './dist/index.html',
  4. port: '8081'
  5. }
  6. module.exports = webConfig

4. 创建serve.js文件

  1. var express=require("express");
  2. var path=require("path");
  3. var app=express();
  4. var config = require("./config") // 前端代码存放目录
  5. // 访问前端项目
  6. app.get('/', (req, res) => {
  7. var options = {
  8. root: __dirname,
  9. headers: {
  10. "Content-Type": "text/html"
  11. }
  12. }
  13. res.sendFile(config.webPath,options, function(error){
  14. if(error){
  15. console.log('Sent failed:', 'index.html' + error);
  16. }else{
  17. console.log('Sent sucess:', 'index.html');
  18. }
  19. });
  20. });
  21. module.exports = app;

5. 创建app.js文件

  1. var app = require("./server")
  2. var config = require("./config")
  3. app.listen(config.port);
  4. console.log("Server running at localhost:" + config.port);

6.配置反向代理

在server.js中引入“http-proxy-middleware”中间件

  1. const { createProxyMiddleware } = require('http-proxy-middleware'); // 引入反向代理中间件

设置代理

server.js
  1. // 反向代理
  2. var api = {
  3. target: 'http://192.168.1.205:6092', // 目标主机
  4. changOrigin: true,//允许跨域
  5. ws: true,
  6. pathRewrite: {
  7. '^/api': ''//请求的时候使用这个api就可以
  8. }
  9. };
  10. var apiProxy = createProxyMiddleware(api); //开启代理功能,并加载配置
  11. app.use('/api', apiProxy); //对地址为"/api"的请求全部转发
  12. var sev = {
  13. target: 'http://192.168.1.205:6091', // 目标主机
  14. changOrigin: true,//允许跨域
  15. ws: true,
  16. pathRewrite: {
  17. '^/sev': ''//请求的时候使用这个api就可以
  18. }
  19. };
  20. var sevProxy = createProxyMiddleware(sev); //开启代理功能,并加载配置
  21. app.use('/sev', sevProxy); //对地址为"/api"的请求全部转发

7. 配置静态资源访问

server.js
  1. app.use(express.static(path.join(__dirname, 'dist'))); // 配置访问静态文件的文件路径

二. 部署到服务器(Linux)

1. 在服务器上安装node:node安装

2. 部署项目

将前端项目代理的文件(上文创建的express项目)压缩并上传到服务器,然后解压、cd到该目录下

全局安装exxpress依赖

  1. npm install express --save -g
  2. npm install express-generator --save -g

修改前端配置

打开/dist/config/config.js文件,修改前端需要改的配置(如果要修改dist文件夹名称,请看下一步:修改前端文件路径)

修改node配置

打开server.js,修改前端项目文件名

若将“dist”文件重命名为“publish”,需要将下面的“dist”改为“publish”

  1. app.use(express.static(path.join(__dirname, 'dist'))); // 配置访问静态文件的文件路径

打开config.js 修改相应配置

若将上面的“dist”文件重命名为“publish”,需要将下面的“dist”改为“publish”

  1. // 前端项目存放目录和访问端口
  2. var webConfig = {
  3. webPath: './dist/index.html',
  4. port: '8081'
  5. }
  6. module.exports = webConfig

其他:
https://www.html.cn/qa/node-js/12278.html
https://blog.csdn.net/qq_38504352/article/details/107024636
https://blog.csdn.net/xuhang666/article/details/83587953