vue项目与node项目分离

为了先后端分离,咱们在前端和api层中间,架构了一层node层,用来作服务端渲染,来加快用户的首屏可用和对搜索引擎的友好。项目一开始放置在同一个git仓库里面,分别放在client目录和server目录中(或者相似于vue 官方例子中的同样,node服务可能只有一个sever.js。由于server中可能须要client中的一些资源,因此不得不将他们放在一块儿。后来经过配置中心驱动以后,client 和server 能够彻底独立,经过配置中心创建链接。因此彻底能够将client项目和server项目分离开。html

 

其实就是在前端项目中,再作了一次先后端分离,此次分离的缘由 跟与api的先后端分离有些不同。此次是由于 第一个 前端vue项目本就是一个彻底独立的项目,拖着server项目反而显的不是那么灵活,一样,server里面包含了client,虽然能够独立发布,可是由于迭代周期的不一样,在管理分支上面总归有点变扭,索性分开,各过各的 各过各的是极好的,但是开发的时候怎么各过各的啊(f***~),我开发的时候要走服务端渲染的逻辑的啊,你让我先基于客户端开发,而后再配合着node调试一波?那可不是反而增长了开发成本 有没有可让client独立也能跑ssr的逻辑,而后最后只要跟正式的node服务经过配置中心配合起来就行了呢? 有啊,给client配置一个简单的服务不就行了么?通常的nodessr不都是这样的么 说白了就我上面说的,一个sever.js。里面是一个基于koa的简单服务,加上了koawepack的中间件(koa-webpack),用来作开发时候的热加载。 而后经过不一样的启动脚本,来配置上不一样的环境变量参数,以此来启动不一样的页面开发,这样子,开发就方便多了,npm run start:home 就是开发首页,npm run start:video 就是开发播放页 后面加上server参数就是开发服务端渲染 例如 npm run start:home:server (这里我只提供一个思路昂~具体实现要讲的东西太多了,这里不太想写 >_>~~)前端

 

容灾

既然是个node服务,那么对于服务也要有相应的容灾方案,否则怎么放心将大流量交给它 那么,咱们须要一个降级方案以备不时之需(如下内容须要创建在你对vuessr有必定了解的基础之上) 首先 vue 服务端渲染都有两个入口文件,entryclient.js和entryserver.js 若是要支持降级,那么须要在entryclient.js上面动一些手脚,咱们仍然以官方例子为例 如今index.temlate.html 增长一个客户端渲染容器,一个名为de-app的div(<!--vue-ssr-outlet-->是服务端渲染的占位符)vue

相关文章
相关标签/搜索