Vue+Koa2 搭建前后端分离项目

2024-01-16 16:36

本文主要是介绍Vue+Koa2 搭建前后端分离项目,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Vue+Koa2 搭建前后端分离项目

简单的一个 Demo 演示: Vue 和 Koa2 在本地搭建前后端分离项目.

重点: 跨域

当前环境:
1, Vite 搭建的 Vue 前端项目 ( 也就是 Vue 3 了 ) .
2, Koa2 搭建的 后端项目.

前端项目在 localhost: 5173 端口下运行, 后端项目在 localhost: 3000 端口下运行, 因此, 前端通过 Ajax 请求 后端的接口就会存在跨域问题. 本文的终点也在聊如何实现跨域.

一, Vue 前端项目

这个没啥说的, 直接使用 vite 工具来创建 Vue 项目就可以了, 大家可以直接去官网查看指令, 复制下面的指令也行.
直接上终端指令:


# 以下指令二选一
# 1, 以下指令复制自官网
npm create vite@latest my-vue-app -- --template vue# 2, 依次输入以下两条指令
npm install -g create-vite
# my-project 是你自己工程的名字
create-vite my-project --template vue
# 我当时用的是 方式2, 这个无所谓, 根据个人喜好吧!

使用指令创建好项目之后, 再依次执行以下指令来配置和运行项目


cd my-projectnpm installnpm run dev

接下来前端项目就会在 5173 端口下运行了!

二, Koa2 后端项目

先执行以下指令, 配置 koa 脚手架

npm install -g koa-generator

接下来使用 koa脚手架来搭建 koa 项目


# 注意是 koa2, 如果你没有写 2, 那创建的项目中 koa版本就是 1.X 了.
# -e 是使用 ejs 模板的意思, 这里前端是用 Vue 来搭建的, 这个 ejs 模板就没啥子用了. 不用管它.
# my-app 是项目名称, 这个根据需求, 自行修改
koa2 -e my-app

koa2 项目创建好之后, 根据终端提示, 依次执行以下指令完成项目配置和运行:


cd my-appnpm installnpm start

接下来, 就可以通过 localhost:3000, 来运行 koa2 创建的项目了, 不过我们这个仅使用 koa 来完成后端的功能, 没必要在浏览器中通过 localhost:3000 来运行项目.

三, 跨域

接下来处理重点问题: 跨域.

node 中提供了众多支持跨域的模块, 我这里列举一个我本人运行成功的案例.

koa2 项目中执行以下指令来安装支持跨域的模块:


npm i koa2-cors -D

安装完毕之后, 再在 koa2 项目的根文件 app.js 中添加以下代码, 然后重启后端项目即可:


// 跨域相关配置
const cors = require('koa2-cors') //引入koa2-cors// 千万注意, app.use(cors()) 执行顺序要尽可能的靠前, 至少要在 路由的 use 之前.
app.use(cors()); //后端允许跨域访问

有了以上跨域配置之后, 前端就可以通过 Ajax 来请求后端的跨域接口了.

项目编码完毕, 部署到服务器之后, 其实是不存在跨域问题的, 因此, 这里对跨域的处理, 并没有多么的吹毛求疵, 直接在后端配置了跨域资源共享策略, 待后期项目部署前, 删除 koa2-cors 这个跨域资源共享配置之后, 再部署后端项目就行了.

其实在加载 koa2-cors 模块的时候, 已经使用 -D 仅执行了开发环境下模块的加载.

下一节聊聊 Vue 项目中 axios 的二次封装.

这篇关于Vue+Koa2 搭建前后端分离项目的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/613229

相关文章

Golang实现基于角色的访问控制(RBAC)的项目实践

《Golang实现基于角色的访问控制(RBAC)的项目实践》基于角色的访问控制(RBAC)是一种安全机制,通过角色来管理用户权限,本文介绍了一种可落地、易扩展的GolangRBAC实现方案,具有一定... 目录一、RBAC 核心模型设计二、RBAC 核心逻辑实现RBAC 管理器定义基础 CRUD:添加用户

SpringBoot项目jar依赖问题报错解析

《SpringBoot项目jar依赖问题报错解析》本文主要介绍了SpringBoot项目中常见的依赖错误类型、报错内容及解决方法,依赖冲突包括类找不到、方法找不到、类型转换异常等,本文给大家介绍的非常... 目录常见依赖错误类型及报错内容1. 依赖冲突类错误(1) ClassNotFoundExceptio

Django调用外部Python程序的完整项目实战

《Django调用外部Python程序的完整项目实战》Django是一个强大的PythonWeb框架,它的设计理念简洁优雅,:本文主要介绍Django调用外部Python程序的完整项目实战,文中通... 目录一、为什么 Django 需要调用外部 python 程序二、三种常见的调用方式方式 1:直接 im

在C#中分离饼图的某个区域的操作指南

《在C#中分离饼图的某个区域的操作指南》在处理Excel饼图时,我们可能需要将饼图的各个部分分离出来,以使它们更加醒目,Spire.XLS提供了Series.DataFormat.Percent属性,... 目录引言如何设置饼图各分片之间分离宽度的代码示例:从整个饼图中分离单个分片的代码示例:引言在处理

HTML5的input标签的`type`属性值详解和代码示例

《HTML5的input标签的`type`属性值详解和代码示例》HTML5的`input`标签提供了多种`type`属性值,用于创建不同类型的输入控件,满足用户输入的多样化需求,从文本输入、密码输入、... 目录一、引言二、文本类输入类型2.1 text2.2 password2.3 textarea(严格

JAVA项目swing转javafx语法规则以及示例代码

《JAVA项目swing转javafx语法规则以及示例代码》:本文主要介绍JAVA项目swing转javafx语法规则以及示例代码的相关资料,文中详细讲解了主类继承、窗口创建、布局管理、控件替换、... 目录最常用的“一行换一行”速查表(直接全局替换)实际转换示例(JFramejs → JavaFX)迁移建

JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)

《JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)》:本文主要介绍如何在IntelliJIDEA2020.1中创建和部署一个JavaWeb项目,包括创建项目、配置Tomcat服务... 目录简介:一、创建项目二、tomcat部署1、将tomcat解压在一个自己找得到路径2、在idea中添加

解决idea启动项目报错java: OutOfMemoryError: insufficient memory

《解决idea启动项目报错java:OutOfMemoryError:insufficientmemory》:本文主要介绍解决idea启动项目报错java:OutOfMemoryError... 目录原因:解决:总结 原因:在Java中遇到OutOfMemoryError: insufficient me

SpringBoot返回文件让前端下载的几种方式

《SpringBoot返回文件让前端下载的几种方式》文章介绍了开发中文件下载的两种常见解决方案,并详细描述了通过后端进行下载的原理和步骤,包括一次性读取到内存和分块写入响应输出流两种方法,此外,还提供... 目录01 背景02 一次性读取到内存,通过响应输出流输出到前端02 将文件流通过循环写入到响应输出流

python项目环境切换的几种实现方式

《python项目环境切换的几种实现方式》本文主要介绍了python项目环境切换的几种实现方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 如何在不同python项目中,安装不同的依赖2. 如何切换到不同项目的工作空间3.创建项目