在本文中,我们将探讨如何使用Node.js(Express 4.x)和Vue(通过vue-cli)构建一个前后端分离的应用,并解决跨域问题。确保你已经安装了Node.js环境,这是运行Express和Vue的基础。 **一、Express 4.x 后端设置** 1. **安装Express**:在命令行中输入`npm install express --save`,这将安装Express框架并将其添加到项目依赖中。 2. **配置CORS**:为了允许Vue前端与Express后端进行跨域通信,需要安装CORS中间件。使用`npm install cors --save`命令安装。然后在`app.js`文件中导入CORS并配置: ```javascript var cors = require('cors'); // 在app.use()方法中添加cors中间件 app.use(cors({ origin: ['http://localhost:8080'], methods: ['GET', 'POST'], allowedHeaders: ['Content-Type', 'Authorization'] })); ``` 3. **创建路由**:在`routes/index.js`文件中,定义一个POST路由来响应前端请求。例如: ```javascript router.post('/first', function(req, res, next) { res.json({name: 'aaa', pwd: '123'}); }); ``` **二、Vue(通过vue-cli)前端设置** 1. **安装vue-cli**:确保已安装Vue CLI,通过`npm install -g @vue/cli`命令全局安装。 2. **创建Vue项目**:使用`vue create project-name`命令创建一个新的Vue项目。 3. **引入jQuery**:虽然Vue.js有自己的API,但这里为了演示Ajax请求,我们选择引入jQuery。在HTML模板中,通过CDN链接引入jQuery: ```html <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script> ``` 4. **发送Ajax请求**:在Vue项目的入口文件(通常是`main.js`或`App.vue`)中,监听按钮点击事件并使用jQuery的Ajax方法发起POST请求: ```html <button>获取json</button> <script> $('button').click(function(){ $.ajax({ type: 'POST', url: 'http://localhost:3000/first', headers: { "Content-Type": "application/json" }, success: function(backDate) { console.log(backDate); } }); }); </script> ``` **注意**:确保Vue项目在`http://localhost:8080`上运行,而Express后端在`http://localhost:3000`上运行。 **总结** 前后端分离架构中,前端和后端分别在不同的端口上运行,通过API接口进行通信。在这个实例中,我们使用Express作为后端服务器,处理HTTP请求,并通过CORS中间件允许Vue前端进行跨域请求。Vue前端使用jQuery的Ajax功能向后端发送POST请求,获取后端返回的数据。尽管Vue有内置的`axios`库或者其他插件如`vue-resource`可以实现相同的功能,但在这里我们选择了jQuery的Ajax,以便更直观地展示数据交互过程。 这个例子提供了一个基本的前后端分离应用的起点,你可以根据需求进一步扩展,比如添加用户认证、连接数据库、优化请求处理等。同时,为了更好地实践模块化开发,推荐学习和使用Vue的组件化和Vuex状态管理等技术。
- 粉丝: 8
- 资源: 960
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (172740052)Python课程设计:SA19225391+王纵横+基于LSTM的古诗文生成系统1
- java项目,毕业设计-在线考试系统
- Arcgis统计要素图层字段信息工具箱
- 数据分析-32-被淘汰的6271家公司的特点分析
- 基于JavaWeb的小区物业管理系统源代码+数据库
- 基于python开发的大模型调用基础框架(源码)
- (176552216)30.基于51单片机的HX711传感器电子秤设计(实物).rar
- (177708036)ASP图书管理系统的设计与实现(源代码+LW).zip
- 数据分析-52-关于ADX游戏广告投放数据的探索
- DP83848以太网相关的代码程序
- (178931822)平差代码C#,测绘专业实用
- ISO16845 CAN一致性测试
- PrimeTime各版本User Guide
- vl53l0x激光测距stm32库函数程序源码
- data来源,用于做该篇文章实战
- 源码,用于做该篇文章实战