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的express使用教程
Nov 23 NodeJs
nodejs基础知识
Feb 03 NodeJs
Nodejs+Socket.io实现通讯实例代码
Feb 13 NodeJs
nodejs mysql 实现分页的方法
Jun 06 NodeJs
详解nodejs实现本地上传图片并预览功能(express4.0+)
Jun 28 NodeJs
详解nodejs通过响应回写的方式渲染页面资源
Apr 07 NodeJs
NodeJS使用Range请求实现下载功能的方法示例
Oct 12 NodeJs
通过Nodejs搭建网站简单实现注册登录流程
Jun 14 NodeJs
nodejs对项目下所有空文件夹创建gitkeep的方法
Aug 02 NodeJs
如何利用nodejs实现命令行游戏
Nov 24 NodeJs
windows如何把已安装的nodejs高版本降级为低版本(图文教程)
Dec 14 NodeJs
NodeJS和浏览器中this关键字的不同之处
Mar 03 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 获取远程网页内容的代码(fopen,curl已测)
2011/06/06 PHP
php数组一对一替换实现代码
2012/08/31 PHP
PHP 动态生成静态HTML页面示例代码
2014/01/15 PHP
php+memcache实现的网站在线人数统计代码
2014/07/04 PHP
SSO单点登录的PHP实现方法(Laravel框架)
2016/03/23 PHP
php metaphone()函数的定义和用法
2016/05/15 PHP
php+redis消息队列实现抢购功能
2018/02/08 PHP
JSON JQUERY模板实现说明
2010/07/03 Javascript
JavaScript如何从listbox里同时删除多个项目
2013/10/12 Javascript
JS window对象的top、parent、opener含义介绍
2013/12/03 Javascript
JavaScript实现按Ctrl键打开新页面
2014/09/04 Javascript
JavaScript中操作字符串小结
2015/05/04 Javascript
JavaScript中Date.toSource()方法的使用教程
2015/06/12 Javascript
JavaScript实现的类字典插入或更新方法实例
2015/07/10 Javascript
jQuery控制div实现随滚动条滚动效果
2016/06/07 Javascript
JS实现点击链接切换显示隐藏内容的方法
2017/10/19 Javascript
JS基于封装函数实现的表格分页完整示例
2018/06/26 Javascript
jQuery实现图片简单轮播功能示例
2018/08/13 jQuery
微信小程序template模板与component组件的区别和使用详解
2019/05/22 Javascript
javascript面向对象程序设计实践常用知识点总结
2019/07/29 Javascript
Vue项目接入Paypal实现示例详解
2020/06/04 Javascript
python中将函数赋值给变量时需要注意的一些问题
2017/08/18 Python
python读取与写入csv格式文件的示例代码
2017/12/16 Python
安装python时MySQLdb报错的问题描述及解决方法
2018/03/20 Python
浅谈Python中的bs4基础
2018/10/21 Python
说说如何遍历Python列表的方法示例
2019/02/11 Python
Python使用mongodb保存爬取豆瓣电影的数据过程解析
2019/08/14 Python
Python Tkinter图形工具使用方法及实例解析
2020/06/15 Python
ZWILLING双立人法国网上商店:德国刀具锅具厨具品牌
2019/08/28 全球购物
行政部总经理岗位职责
2014/01/04 职场文书
学校四群教育实施方案
2014/06/12 职场文书
2014教师年度思想工作总结
2014/11/10 职场文书
2014年银行工作总结范文
2014/11/12 职场文书
财务会计个人原因辞职信
2019/06/21 职场文书
详解Python描述符的工作原理
2021/06/11 Python
浅谈@Value和@Bean的执行顺序问题
2021/06/16 Java/Android