首页 > 前后端分离的一些疑问

前后端分离的一些疑问

Hi,各位大神。我如果要在公司内部实践前后端分离的架构有什么要注意的。目前公司后台语言用的是java c++ 可以提供json jsonp格式的接口

前端开发都不会node.js 那么前端开发完的代码是放到nginx里面可以吗?有什么弊端吗?

多谢各位大神了。


前后分离开发环境和部署

nginx代理

你的静态资源在 ~/static/目录下,而你的后端服务端口是8080,你可以在nginx下配置如下

    #静态文件,请求静态文件代理带`static`目录下
    location ~ ^/(images|javascript|js|css|flash|media|static)/ {
        root ~/static;
    }
    #接口代理到api下
    location ~ ^/(api)/ {
        root localhost:8080/api;
    }

1024,楼主点赞一生平安。

node代理

node的代理有多种选择方式,我贴个gulp的

var gulp = require('gulp');
var connect = require('gulp-connect');
var proxy = require('proxy-middleware');
var url = require('url');
gulp.task('connect', function () {
    connect.server({
        root: './',
        port: 3000,
        middleware: function (connect, opt) {
            var proxyOptions = url.parse('http://localhost:8080/api/');
            proxyOptions.route = '/api/';
            return [
                proxy(proxyOptions)
            ]
        }
    })
});

1024,楼主点赞一生平安。

一些概念

前后分离的本意是把mvc的v完全交给前端去打理,不在依赖后台模板引擎,这样就可以脱离后台的环境进行前端的开发,毕竟后台的开发环境搭建是很麻烦的(心力交瘁),有时候后端人员在你的机子上还搭不起来呢(坑爹)。第二点是不在依赖后台的数据进行开发,可以用请求json文件路径或者用mock进行接口数据模拟开发。

那么如何进行前后端分离呢?
一,前端用html,通过ajax请求数据,用nginx起服务做代理解决跨域问题,但是你没有看到过大网站是用这种方式的,为什么呢?因为这样对seo不友好,也有很大的安全问题。第二种前后分离是前端使用node的服务,页面用node的模版引擎,接口用node去请求,这样是前后分离最完美,最舒服的方式,但是大网站为什么不采取这种方式呢?原来啊,node解决了seo问题,但是并没有解决运维的问题,运维对数据的监控,对机器的部署,对node服务的监控还有没成熟的方案和node的性能和处理业务的能力还是远远低于java的。三,那么大公司网站是怎么前后分离的呢?基本都是前端写好html让后台去套数据,虽然有了node构建工程化,可以模拟java的模板,但是还是不够完美的,前后端还是会有很大的沟通成本,coding也不会太舒服的。希望有一天node崛起,代替java就好了。


目前比较前沿的前后端分离技术是前端负责controller层和view层,前提是前端的同学会使用nodejs,

既然题主公司的前端不会nodejs的话。 那只能用MVC模式(也是目前用的最多,包括taobao,支付宝都在用)去开发。在这种协作模式下,前端的同学可以把写好的页面拿给后端的同学,后端的同学再在页面里面套上数据,然后发布。

楼主可以参考下《Web 研发模式演变》这篇博文,就能对前后端分离的前世今生有个大致的了解:
https://github.com/lifesinger/lifesinger.github.io/issues/184

【热门文章】
【热门文章】