当前位置: 首页 > article >正文

node+express部署多套vue3项目,总404页面由node控制,子404页面由子vue控制,node路由重定向

const express = require('express')
const history = require('connect-history-api-fallback')
const { createProxyMiddleware } = require('http-proxy-middleware')
const cors = require('cors')


let app = express()


app.use(cors())
app.use(history())

// //匹配api开头的请求,实际转发的请求保api这三个字母
// app.use(
//   '/api',
//   createProxyMiddleware({
//     target: 'http://localhost:85',
//     changeOrigin: true,
//   })
// )

// app.use(
//   '/master',
//   createProxyMiddleware({
//     target: 'http://10.30.251.100:81',
//     secure: false,
//     changeOrigin: true,
//     pathRewrite: function (path, req) {
//       console.log(path)
//       // 可以在这里重写路径
//       return `/master${path}`
//     },
//     on: {
//       proxyReq: (proxyReq, req, res) => {
//         //console.log(proxyReq)
//         /* handle proxyReq */
//       },
//       proxyRes: (proxyRes, req, res) => {
//         //console.log(proxyRes)
//         /* handle proxyRes */
//       },
//       error: (err, req, res) => {
//         console.log(err)
//         /* handle error */
//       },
//     },
//   })
// )

// app.use(
//   '/product',
//   createProxyMiddleware({
//     target: 'http://10.30.251.100:82',
//     secure: false,
//     changeOrigin: true,
//     pathRewrite: function (path, req) {
//       console.log(path)
//       // 可以在这里重写路径
//       return `/product${path}`
//     },
//     on: {
//       proxyReq: (proxyReq, req, res) => {
//         //console.log(proxyReq)
//         /* handle proxyReq */
//       },
//       proxyRes: (proxyRes, req, res) => {
//         //console.log(proxyRes)
//         /* handle proxyRes */
//       },
//       error: (err, req, res) => {
//         console.log(err)
//         /* handle error */
//       },
//     },
//   })
// )

app.use(
  '/api',
  createProxyMiddleware({
    target: 'http://127.0.0.1:8001',
    secure: false,
    changeOrigin: true,
    pathRewrite: function (path, req) {
      console.log('path', path)
      // 可以在这里重写路径
      return `${path}`
    },
    on: {
      proxyReq: (proxyReq, req, res) => {
        //console.log(proxyReq)
        /* handle proxyReq */
      },
      proxyRes: (proxyRes, req, res) => {
        //console.log(proxyRes)
        /* handle proxyRes */
      },
      error: (err, req, res) => {
        console.log(err)
        /* handle error */
      },
    },
  })
)

// app.use(
//   '/main',
//   createProxyMiddleware({
//     target: 'http://127.0.0.1:9000',
//     secure: false,
//     changeOrigin: true,
//     pathRewrite: function (path, req) {
//       console.log('path', path)
//       // 可以在这里重写路径
//       return `${path}`
//     },
//     on: {
//       proxyReq: (proxyReq, req, res) => {
//         //console.log(proxyReq)
//         /* handle proxyReq */
//       },
//       proxyRes: (proxyRes, req, res) => {
//         //console.log(proxyRes)
//         /* handle proxyRes */
//       },
//       error: (err, req, res) => {
//         console.log(err)
//         /* handle error */
//       },
//     },
//   })
// )

// app.use('/main', express.static('./dist'))



app.use('/main', express.static('./main'))
app.use('/sub/', express.static('./sub'))
app.use('/', (req, res) => {
  res.redirect('/main/index.html');
});

app.get('*', (req, res) => {
  res.redirect('/main/index.html#/404');
});






app.listen(99, () => {
  console.log('http://localhost:99')
  console.log('success')
})

人工智能学习网站

https://chat.xutongbao.top


http://www.kler.cn/a/311406.html

相关文章:

  • 吾店云介绍 – 中国人的WordPress独立站和商城系统平台
  • MySQL中的事务与锁
  • 图像处理自动渲染代码
  • vue cli源码学习之cli-service
  • 通过DNS服务器架构解释DNS请求过程
  • YOLOv11实战宠物狗分类
  • 力扣 42.接雨水
  • MacOS Catalina 从源码构建Qt6.2开发库之01: 编译Qt6.2源代码
  • 机器学习-监督学习:朴素贝叶斯分类器
  • [C语言]第九节 函数一基础知识到高级技巧的全景探索
  • Python基础(九)——正则表达式
  • 软件工程中的耦合:类型、影响与优化策略
  • 索引的介绍
  • 【数据结构-差分】【hard】力扣995. K 连续位的最小翻转次数
  • 【RabbitMQ】重试机制、TTL
  • hku-mars雷达相机时间同步方案-软件驱动(MID360与海康MV-CB060-10UMUC-S)
  • 2-99 基于matlab多尺度形态学提取眼前节组织
  • 3 种自然语言处理(NLP)技术:RNN、Transformers、BERT
  • 0.5.4 知识库管理微调
  • Linux云计算 |【第四阶段】NOSQL-DAY1
  • C#和数据库高级:抽象类和抽象方法
  • kafka 一步步探究消费者组与分区分配策略
  • Reactor介绍,如何从简易版本的epoll修改成Reactor模型(demo版本代码+详细介绍)
  • YOLOv5/v8 + 双目相机测距
  • 学习大数据DAY58 增量抽取数据表
  • JavaWeb项目打包、部署至Tomcat并启动的全程指南(图文详解)