2019独角兽企业重金招聘Python工程师标准>>>

架构说明

前后端分离架构,很多团队都是通过”代理转发”浏览器发往后端的rest请求来解决跨域问题,可以用nginx或者node.js模块http-proxy-middleware实现代理。以下是部署架构,在此架构中你把node换成nginx依然成立。

Nodejs前端服务器的职责:

  1. 作为静态文件服务器,当用户访问网站的时候,将index.html以及其引入的js、css、fonts以及图片返回给用户
  2. 负责将客户端发来的ajax请求转发给后台服务器

用nginx部署前后端分离较为简单,所在这里介绍用nodejs作为前后端分离中间层的部署demo。

一、搭建node服务器

首先假定你已经安装了 Node.js,接下来为你的应用创建一个目录,然后进入此目录并将其作为当前工作目录。

$ mkdir express_sample
$ cd express_sample

通过 npm init 命令为你的应用创建一个 package.json 文件。

$ npm init

此命令将要求你输入几个参数,例如此应用的名称和版本。 你可以直接按“回车”键接受默认设置即可,下面这个除外:

entry point: (index.js)

键入 app.js 或者你所希望的名称,这是当前应用的入口文件。如果你希望采用默认的 index.js 文件名,只需按“回车”键即可。

接下来安装 Express 并将其保存到依赖列表中:

$ npm install express --save

因为会用到http-proxy-middleware,也把它依赖到列表:

$ npm install http-proxy-middleware --save

此时express_sample的目录包含:node_modules、package.json两部分

二、部署前端代码

创建app.js,内容如下

var express = require('express');
var proxy = require('http-proxy-middleware');//引入代理模块
var app = express();app.use(express.static('public'));/***以下两步对所有异步请求均代理到http://10.90.3.119:8080,比如浏览器发的请求地址为:* http://10.90.3.118:3000/orgs/100,则代理地址为http:10.90.3.119:8000/orgs/100(注:10.90.3.118为node部署机器ip)*/
var apiProxy = proxy('/', { target: 'http://10.90.3.119:8080',changeOrigin: true });http://10.90.3.119:8080
app.use('/', apiProxy);app.get('/index.htm', function(req,res){res.sendFile(__dirname+'/src/index.html');
});app.listen(3000, () => {   console.log('Listening on: http://localhost:3000');
});

在express_sample下创建public文件夹,存放静态资源(html、cs、js等)。我这里在public存放用vue开发好、经过打包后的文件:dist、index.html。

启动

$ node app.js

访问:http://10.90.3.118:3000,我们的index.htm、dist文件夹中的静态资源已经加载成功。

此时express_sample目录包含:node_modules、package.json、app.js、public。

二、部署后端应用

我后端采用springboot启微服务,向前端提供rest api。springboot部署微服务demo实在太多,你可以很容易在http://projects.spring.io/spring-boot/上面找到例子,所以,就不说了。

转载于:https://my.oschina.net/u/1185936/blog/1523088

Node.js + Express + Springboot实现前后端分离架构相关推荐

  1. 基于node.js和vue的前后端分离影院售票系统电影院影片管理

    1,项目介绍 基于 node.js和vue 的影院售票系统拥有两种角色,分别为管理员和用户. 用户:热映.即将上映.电影和影院全局搜索.评论.选座.购票.点赞.收藏.订单等一系列购票功能 管理员:用户 ...

  2. 从0搭建一个Springboot+vue前后端分离项目(一)安装工具,创建项目

    从0搭建一个Springboot+vue前后端分离项目(二)使用idea进行页面搭建+页面搭建 参考学习vue官网文档 https://v3.cn.vuejs.org/guide/installati ...

  3. 适合新手拿来练习的springboot+vue前后端分离小Demo

    前言: 作者:神的孩子在歌唱 大家好,我叫智 练习springboot+vue前后端分离的Demo 一. 设计数据库 二 . springboot项目创建 2.1 基本配置 2.2 创建dao层 三. ...

  4. 基于springboot+vue前后端分离的学生在线考试管理系统

    一.基于springboot+vue前后端分离的学生在线考试管理系统 本系统通过教师用户创建班级编写试卷信息然后发布到班级.学生用户进入班级,在线作答,考试结果数据通过网络回收,系统自动进行判分,生成 ...

  5. Vue 脚手架结合 SpringBoot 构建前后端分离入门项目(实现增删改查)

    Vue 脚手架构建前后端分离项目 项目简介与预览 数据库建表 主要模块代码 index.js 路由代码 User.vue 用户组件 RAP2 创建接口进行测试 切换路由组件的显示: this.$rou ...

  6. SpringBoot + Vue前后端分离开发:全局异常处理及统一结果封装

    SpringBoot + Vue前后端分离开发:全局异常处理及统一结果封装 文章目录 SpringBoot + Vue前后端分离开发:全局异常处理及统一结果封装 前后端分离开发中的异常处理 统一结果封 ...

  7. SpringBoot+vue前后端分离博客项目

    SpringBoot+vue前后端分离博客项目 Java后端接口开发 1.前言 2.新建Springboot项目 3.整合mybatis plus 第一步:导入jar包 第二步:然后去写配置文件: 第 ...

  8. 基于springboot+vue前后端分离的婚礼服装租赁系统

    1 简介 今天向大家介绍一个帮助往届学生完成的毕业设计项目,基于springboot+vue前后端分离的婚礼服装租赁系统. 计算机毕业生设计,课程设计需要帮助的可以找我 源码获取------> ...

  9. SpringBoot+Vue前后端分离

    文章目录 前言 一.vue项目创建 二.SpringBoot项目创建 使用IDEA创建一个简单的SpringBoot项目,这里随便百度,参考很多 三.前后端整合 1.vue配置跨域跳转 2.sprin ...

最新文章

  1. python 利用pyinstaller 编译.exe文件过程中编写完的.exe文件执行过程中闪退
  2. python paramiko sftp_python paramiko (ssh,sftp)
  3. 视图切换—多模板文档视图结构的应用
  4. 大型集团企业云管平台建设参考架构
  5. OpenCV学习笔记:绘图指令(矩形、圆、线、文本标注)
  6. 漫画:一文学会面试中常问的 IO 问题!
  7. 操作系统的 (program)loader(程序加载器)
  8. Exception:No identifier specified for entity
  9. linux 模拟usb键盘,在Linux下模拟键盘按键
  10. 表格识别综述与相关实战
  11. 【记坑】大白菜或老毛桃制作U盘后BIOS找不到系统
  12. 飞思卡尔智能车之舵机算法
  13. fluent二维叶型仿真_公开课 l 基于SCORG的双螺杆压缩机流体仿真分析应用
  14. 我的2018 年终小结
  15. 如何解决eclipse黑底白字快速需求
  16. 记一次破解前端加密详细过程
  17. Abp.Zero 手机号免密登录验证与号码绑定功能的实现(一):验证码模块
  18. 鱼C论坛_VIP四号光盘
  19. TFT液晶屏驱动移植
  20. mobx 源码解读(四):讲讲 autorun 和 reaction

热门文章

  1. python windows错误码
  2. 【OpenGL】关于OpenGL中Bind函数的理解
  3. 对大龄程序员的五大误解
  4. java期末考试试卷及答案文库_JAVA期末考试试卷及答案
  5. 线程撕裂者安装linux,CPU-Z 1.90发布:初步支持三代线程撕裂者
  6. sql server ssl安全错误_Nginx的这些安全设置,你都知道吗?
  7. js remove 当前元素_D3.js入门教程
  8. 练习5-1 求m到n之和 (10 分)
  9. 枚举 ---- B. Power Sequence[Codeforces Round #666 (Div. 2)][暴力]
  10. 树莓派系统安装_树莓派系统安装