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

相关文章

Knife4j+Axios+Redis前后端分离架构下的 API 管理与会话方案(最新推荐)

《Knife4j+Axios+Redis前后端分离架构下的API管理与会话方案(最新推荐)》本文主要介绍了Swagger与Knife4j的配置要点、前后端对接方法以及分布式Session实现原理,... 目录一、Swagger 与 Knife4j 的深度理解及配置要点Knife4j 配置关键要点1.Spri

深度解析Java项目中包和包之间的联系

《深度解析Java项目中包和包之间的联系》文章浏览阅读850次,点赞13次,收藏8次。本文详细介绍了Java分层架构中的几个关键包:DTO、Controller、Service和Mapper。_jav... 目录前言一、各大包1.DTO1.1、DTO的核心用途1.2. DTO与实体类(Entity)的区别1

如何在Spring Boot项目中集成MQTT协议

《如何在SpringBoot项目中集成MQTT协议》本文介绍在SpringBoot中集成MQTT的步骤,包括安装Broker、添加EclipsePaho依赖、配置连接参数、实现消息发布订阅、测试接口... 目录1. 准备工作2. 引入依赖3. 配置MQTT连接4. 创建MQTT配置类5. 实现消息发布与订阅

springboot项目打jar制作成镜像并指定配置文件位置方式

《springboot项目打jar制作成镜像并指定配置文件位置方式》:本文主要介绍springboot项目打jar制作成镜像并指定配置文件位置方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录一、上传jar到服务器二、编写dockerfile三、新建对应配置文件所存放的数据卷目录四、将配置文

前端如何通过nginx访问本地端口

《前端如何通过nginx访问本地端口》:本文主要介绍前端如何通过nginx访问本地端口的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、nginx安装1、下载(1)下载地址(2)系统选择(3)版本选择2、安装部署(1)解压(2)配置文件修改(3)启动(4)

怎么用idea创建一个SpringBoot项目

《怎么用idea创建一个SpringBoot项目》本文介绍了在IDEA中创建SpringBoot项目的步骤,包括环境准备(JDK1.8+、Maven3.2.5+)、使用SpringInitializr... 目录如何在idea中创建一个SpringBoot项目环境准备1.1打开IDEA,点击New新建一个项

MySQL主从复制与读写分离的用法解读

《MySQL主从复制与读写分离的用法解读》:本文主要介绍MySQL主从复制与读写分离的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、主从复制mysql主从复制原理实验案例二、读写分离实验案例安装并配置mycat 软件设置mycat读写分离验证mycat读

HTML中meta标签的常见使用案例(示例详解)

《HTML中meta标签的常见使用案例(示例详解)》HTMLmeta标签用于提供文档元数据,涵盖字符编码、SEO优化、社交媒体集成、移动设备适配、浏览器控制及安全隐私设置,优化页面显示与搜索引擎索引... 目录html中meta标签的常见使用案例一、基础功能二、搜索引擎优化(seo)三、社交媒体集成四、移动

HTML input 标签示例详解

《HTMLinput标签示例详解》input标签主要用于接收用户的输入,随type属性值的不同,变换其具体功能,本文通过实例图文并茂的形式给大家介绍HTMLinput标签,感兴趣的朋友一... 目录通用属性输入框单行文本输入框 text密码输入框 password数字输入框 number电子邮件输入编程框

HTML img标签和超链接标签详细介绍

《HTMLimg标签和超链接标签详细介绍》:本文主要介绍了HTML中img标签的使用,包括src属性(指定图片路径)、相对/绝对路径区别、alt替代文本、title提示、宽高控制及边框设置等,详细内容请阅读本文,希望能对你有所帮助... 目录img 标签src 属性alt 属性title 属性width/h