在实际业务开发中,会遇到这样一种需求,使用VUE的页面须要支持SEO,同时对首屏有指标性要求,目前市面上广泛使用的是Nuxt.js解决方案,在引入的同时还须要考虑与现有的全栈工程结合,本系列文章探讨的是此类全栈工程的解决方案,同时使用的是TypeScript应用于先后端编程,文章中介绍的工程与技术要点源码已上传至Github,有须要的朋友可自行下载:
Nuxt.js和Nest.js同构工程前端
复制代码
文章意在抛砖引玉,先后端使用同一种语言TypeScript编写,示例已包含基本接口请求,数据库链接应用,公用模块封装等实际开发中使用到的内容。git
TypeScript全栈工程实战-(Nuxt. js & Nest. js) - 2、《框架融合》github
TypeScript全栈工程实战-(Nuxt. js & Nest. js) - 3、《配置服务》数据库
TypeScript全栈工程实战-(Nuxt. js & Nest. js) - 4、《UI系统》编程
TypeScript全栈工程实战-(Nuxt. js & Nest. js) - 5、《API服务设计》后端
TypeScript全栈工程实战-(Nuxt. js & Nest. js) - 6、《SEO功能实现》服务器
TypeScript全栈工程实战-(Nuxt. js & Nest. js) - 7、《Vuex使用》框架
TypeScript全栈工程实战-(Nuxt. js & Nest. js) - 8、《接入Mongo DB服务》mongoose
TypeScript全栈工程实战-(Nuxt. js & Nest. js) - 9、《TypeScript》post
TypeScript全栈工程实战-(Nuxt. js & Nest. js) - 10、《工程化部署》
同构化工程常常会遇到一种问题:即先后端配置须要维护2份或者配置重复问题,在本示例工程中,将创建配置服务,从框架剥离的角度,让先后端使用同一份配置。
这里指的框架剥离:指的是配置服务不能导入任何先后端框架类或接口,这样作的目的是避免先后端在调用时遇到各自运行环境不支持的类,好比:服务端支持mongoose但前端不支持运行。因此服务配置必须是纯净的,纯TypeScript文件,与框架无关。
NODE_ENV=xx
进行为准。
配置服务
配置基类
环境标记写入
前面提到,配置服务在实例化前先读入了环境配置标记,该环境配置标记应在服务器启动以前完成,在这里封装到单独JS文件中,而且在启动前经过命令行方式写入,确保先后端读取的是同一份配置。
至此,完成先后端调用同一份配置内容。