nodeJS(express4.x)+vue(vue-cli)构建前后端分离实例(带跨域)


Posted in NodeJs onJuly 05, 2017

准备工作:

1.安装nodejs ---还用我教了?

2.安装依赖包express4.x  点这里》》》nodeJS搭建本地服务器

3.安装vue-cli脚手架 点这里》》》vue-cli构建vue项目

这里强调一下,express是后端服务器,它是一个独立的服务器,vue启动的是前端服务器,vue-cli中已经集成了一个小型的express,这两个服务器是分开放的,但是它们都是基于nodejs的。

nodeJS部分:这里我已经认为你搭建好了express服务器,并且能在浏览器中访问到

1.在express目录下,安装cors包1.npm install cors --save 
2. //这里的--save是指把cors依赖注入到package.json中 

nodeJS(express4.x)+vue(vue-cli)构建前后端分离实例(带跨域)

2.在app.js中配置:开启cors  //就如我下图配置的一样

nodeJS(express4.x)+vue(vue-cli)构建前后端分离实例(带跨域) 

//.............
var cors = require('cors');

//...............

app.use(cors({
  origin:['http://localhost:8080'],
  methods:['GET','POST'],
  alloweHeaders:['Conten-Type', 'Authorization']
}));

3.在routes/index.js中配置一条路由映射

nodeJS(express4.x)+vue(vue-cli)构建前后端分离实例(带跨域)

nodeJS(express4.x)+vue(vue-cli)构建前后端分离实例(带跨域)

router.post('/first', function(req, res, next) {
 res.json({name:'aaa',pwd:'123'});
});

说明:到这里后端就配置完了,我这里写了假数据,没有访问数据库,我只让返回了一个json对象 {name:'aaa', pwd:'123'}

只要是 http://localhost:8080/first 这个路由过来的访问都可以拿到这个返回的对象了

这里需要说明的是,后台自己本来的域名下也是可以访问到这个路由的,就是说明这个域名是可以共享的。

 --重启服务器

Vue部分:这里我已经认为你搭建好了vue服务器,并且能在浏览器中访问到

说明:我们这里引入了jquery,目的是为了用他的ajax插件,这里有同学可能会问了,为什么不用vue-resource?

vue-resource: 是Vue.js的一款插件,它可以通过XMLHttpRequest或JSONP发起请求并处理响应。也就是说,$.ajax能做的事情,vue-resource插件一样也能做到,而且vue-resource的API更为简洁。另外,vue-resource还提供了非常有用的inteceptor功能,使用inteceptor可以在请求前和请求后附加一些行为,比如使用inteceptor在ajax请求时显示loading界面

我告诉你原因: 因为我不会,就是这么有底气!还有,我再声明,如果这个项目里再结构方面有哪里不合理,还请请赐教,就是这么虚心求教

1.打开vue项目的入口文件

nodeJS(express4.x)+vue(vue-cli)构建前后端分离实例(带跨域)

2.在入口文件中编写代码   这里可能有人问为什么不用模块化开发,我在说一遍,我现在还不会 -_- |       -_-|       -_-| 

nodeJS(express4.x)+vue(vue-cli)构建前后端分离实例(带跨域) 

这里我用了百度静态资源库的cdn加载

<script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<button>获取json</button>
<script>
  $('button').click(function(){
    $.ajax({
      type:'POST',
      url:'http://localhost:3000/first',
      headers:{
        "Conten-Type":"http://localhost:3000/first"
      },
      success:function (backDate) {
        // body...
        console.log(backDate);
      }
    })
  })
</script>

3.因为vue项目是自动刷新的,如果没有,你就手动刷新一下,因为我还没搞明白它什么在哪些情况下会自动刷新,再不行就重启服务器,哈哈

nodeJS(express4.x)+vue(vue-cli)构建前后端分离实例(带跨域) 

这是现在的前端页面,我们点击以后看控制台,因为在ajax请求里写的,我们在访问成功success时,打印出传回来的数据

nodeJS(express4.x)+vue(vue-cli)构建前后端分离实例(带跨域) 

至此,我们的前后端入门就到此结束了。。。

我们从localhost:8080端口访问到了localhost:3000端口,并进行了交互,各位,像前后端分离进军吧!

参考:

Vue.js——基于$.ajax实现数据的跨域增删查改 

express中文文档  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

NodeJs 相关文章推荐
NodeJs中的非阻塞方法介绍
Jun 05 NodeJs
Nodejs 搭建简单的Web服务器详解及实例
Nov 30 NodeJs
Nodejs 发送Post请求功能(发短信验证码例子)
Feb 09 NodeJs
实例分析nodejs模块xml2js解析xml过程中遇到的坑
Mar 18 NodeJs
nodejs获取微信小程序带参数二维码实现代码
Apr 12 NodeJs
nodejs个人博客开发第四步 数据模型
Apr 12 NodeJs
Nodejs实现多房间简易聊天室功能
Jun 20 NodeJs
NodeJs中express框架的send()方法简介
Jun 20 NodeJs
Mac 安装 nodejs方法(图文详细步骤)
Oct 30 NodeJs
NodeJS 中Stream 的基本使用
Jul 30 NodeJs
nodejs中各种加密算法的实现详解
Jul 11 NodeJs
Nodejs 微信小程序消息推送的实现
Jan 20 NodeJs
nodejs模块学习之connect解析
Jul 05 #NodeJs
详解HTTPS 的原理和 NodeJS 的实现
Jul 04 #NodeJs
nodejs 子进程正确的打开方式
Jul 03 #NodeJs
Express+Nodejs 下的登录拦截实现代码
Jul 01 #NodeJs
NodeJS实现图片上传代码(Express)
Jun 30 #NodeJs
详解nodejs实现本地上传图片并预览功能(express4.0+)
Jun 28 #NodeJs
NodeJS链接MySql数据库的操作方法
Jun 27 #NodeJs
You might like
php下目前为目最全的CURL中文说明
2010/08/01 PHP
php获取网站百度快照日期的方法
2015/07/29 PHP
PHP随手笔记整理之PHP脚本和JAVA连接mysql数据库
2015/11/25 PHP
Yii2中使用asset压缩js,css文件的方法
2016/11/24 PHP
PHP 中常量的知识整理
2017/04/14 PHP
PHP设计模式(五)适配器模式Adapter实例详解【结构型】
2020/05/02 PHP
JQUERY复选框CHECKBOX全选,取消全选
2008/08/30 Javascript
jquery移除button的inline onclick事件(已测试及兼容浏览器)
2013/01/25 Javascript
JavaScript 实现类的多种方法实例
2013/05/01 Javascript
JS 两日期相减,获得天数的小例子(兼容IE,FF)
2013/07/01 Javascript
浅谈javascript的调试
2015/01/28 Javascript
JS实现图片高亮展示效果实例
2015/11/24 Javascript
完美解决IE不支持Data.parse()的问题
2016/11/24 Javascript
nodejs服务搭建教程 nodejs访问本地站点文件
2017/04/07 NodeJs
微信小程序实现页面跳转传值的方法
2017/10/12 Javascript
在vscode中统一vue编码风格的方法
2018/02/22 Javascript
mpvue+vuex搭建小程序详细教程(完整步骤)
2018/09/30 Javascript
Node.js动手撸一个静态资源服务器的方法
2019/03/09 Javascript
python fabric实现远程部署
2017/01/05 Python
Python外星人入侵游戏编程完整版
2020/03/30 Python
浅谈python内置变量-reversed(seq)
2017/06/21 Python
python实现微信自动回复机器人功能
2019/07/11 Python
Python爬虫使用代理IP的实现
2019/10/27 Python
python 在sql语句中使用%s,%d,%f说明
2020/06/06 Python
Python matplotlib图例放在外侧保存时显示不完整问题解决
2020/07/28 Python
pycharm专业版远程登录服务器的详细教程
2020/09/15 Python
Python字典取键、值对的方法步骤
2020/09/30 Python
通过案例解析python鸭子类型相关原理
2020/10/10 Python
eBay奥地利站:eBay.at
2019/07/24 全球购物
在线实验室测试:HealthLabs.com
2020/05/03 全球购物
会议室标语
2014/06/21 职场文书
颐和园导游词
2015/01/30 职场文书
教师求职简历自我评价
2015/03/10 职场文书
唱歌比赛拉拉队口号
2015/12/25 职场文书
PYTHON使用Matplotlib去实现各种条形图的绘制
2022/03/22 Python
Android基于Fresco实现圆角和圆形图片
2022/04/01 Java/Android