使用Egg和Vite做前后端

原理

Egg 和 Vite 是一组适合前后端分离方案的工具。使用 Egg.js 和 Vite 做前后端分离的原理如下:

  1. 在前端项目通过 Vite 构建成独立的静态文件,包括 HTML、CSS、JavaScript 等。
  2. 在 Egg.js 中,定义一个中间件,用于代理前端请求和后端请求。
  3. 在 Egg.js 中,设置一个静态文件目录 (例如 app/public),将前端构建出来的静态文件拷贝到这个目录下,用于后端服务的静态文件访问。
  4. 在 Egg.js 中启动一个 HTTP 服务器,监听对应的端口,用于提供后端服务。
  5. 在 Vite 中启动一个 HTTP 服务器,监听对应的端口,用于提供前端服务。
  6. 利用中间件将前端请求代理到 Vite 的 HTTP 服务器,将后端请求代理到 Egg.js 的 HTTP 服务器。
  7. 在前端代码中访问后端 API,使用相对路径或绝对 URL,与代理配置相对应。

优缺点

Egg.js 和 Vite 的结合,相较于传统的前后端集成方式,有如下优缺点:

优点:

  1. 方便前后端分离开发,每个团队专注于自己的业务实现,减少团队间的协作和沟通成本。
  2. 利用 Vite 的高效构建和开发体验,能够大大提高前端开发的效率和代码质量。
  3. 利用 Egg.js 的多进程模型和插件机制,能够很好地保证整个网站的稳定性和性能。
  4. 利用中间件和代理等技术,能够快速响应前端请求和后端请求,并对请求进行统一管理和监控。

缺点:

  1. 需要配置中间件和代理等参数,增加了部署和维护的复杂度。
  2. 依赖多个技术栈,需要同时掌握 Egg.js、Vite、前端框架等多个技术。
  3. 对 CPU 和内存的占用较高,需要考虑服务器配置和成本问题。

搭建步骤

Egg.js 和 Vite 的结合,具体的步骤如下:

创建 Egg.js 应用

创建一个 Egg.js 应用,采用简单模式:

npx egg-init myapp --type=simple

安装 Vite

通过 npm 安装 Vite:

npm install vite --save-dev

创建前端项目

在 Egg.js 应用下,创建一个空目录 myweb,用于存放前端项目。

mkdir myweb

cd myweb

使用 npm 初始化 myweb 目录:

npm init -y

在 myweb 目录下,使用 npm 安装所需的前端框架(例如 Vue.js)和组件库(例如 ElementUI):

npm install vue element-ui --save

编写前端代码

编写前端代码,例如在 myweb 目录下编写 `main.js` 和 `index.html`:

`index.html`:
```html
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>My App</title>
    <link rel="stylesheet" href=""/>
  </head>
  <body>
    <div id="app"></div>
    <script type="module" src="./src/main.js"></script>
  </body>
</html>
```

配置 Vite

在 myweb 目录下,创建一个 `vite.config.js` 配置文件,配置 Vite:

```javascript
import { defineConfig } from 'vite';
export default defineConfig({
  base: './',
  server: {
    host: '192.168.2.35',
    port: 83,
    /** 把vite配置成代理服务器 */
    proxy: {
      '/api': {
        target: 'http://192.168.2.35:7001' /** 目标服务器 */,
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/api/, ''),
      },
    },
  },
});
```

启动开发服务

在 Egg.js 应用根目录下,使用 npm 命令启动开发服务:

npm run dev

在 myweb 目录下,使用 npm 命令启动 Vite 开发服务器:

npm run dev

完成上述步骤后,即可在浏览器中访问应用的首页,看到前端页面。同时,后端 API 地址也能正常访问。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值