EggBorn.js - Javascript 全栈开发框架


LGPL
跨平台
JavaScript

软件简介

EggBorn.js 是什么

EggBorn.js是一款顶级Javascript全栈开发框架。

EggBorn.js是采用Javascript进行全栈开发的最佳实践。
EggBorn.js不重复造轮子,而是采用业界最新的开源技术,进行全栈开发的最佳组合。 EggBorn.js前端采用Vue.js + Framework7
/ Vue Router + Webpack,后端采用Koa.js + Egg.js,数据库采用mysql。
EggBorn.js时刻跟踪开源技术的最新成果,并持续优化,使整个框架时刻保持最佳状态。

EggBorn.js 重点解决什么问题:业务模块化

Javascript技术的蓬勃发展,为前后端开发带来了更顺畅的体验,显著提升了开发效率。但仍有网友质疑Javascript能否胜任大型Web应用的开发。大型Web应用的特点是随着业务的增长,需要开发大量的页面组件。面对这种场景,一般有两种解决方案:

1 采用单页面的构建方式,缺点是产生的部署包很大。

2 采用页面异步加载方式,缺点是页面过于零散,需要频繁与后端交互。

EggBorn.js实现了第三种解决方案:

3 页面组件按业务需求归类,进行模块化,并且实现了模块的异步加载机制,从而弥合了前两种解决方案的缺点,完美满足大型Web应用业务持续增长的需求。

EggBorn.js 的技术特点

  • 业务模块化:页面组件按模块组织

  • 加载方式灵活:模块既可异步加载,也可同步加载

  • 模块高度内聚:模块包括前端页面组件和后端业务逻辑

  • 参数配置灵活:模块中的前后端可以单独进行参数配置

  • 国际化:模块中的前后端均支持独立的国际化

  • 模块隔离:模块的页面、数据、逻辑、路由、配置等元素均进行了命名空间隔离处理,避免模块之间的变量污染与冲突

  • 超级易用的事务处理:只需在路由记录上配置一个参数,即可完美实现数据库的事务处理。

  • 渐进式开发:由于模块的高度内聚,可以将业务以模块的形式沉淀,在多个项目中重复使用,既可贡献到npm开源社区,也可部署到公司内部私有npm仓库。

有了EggBorn.js,从此可复用的不仅仅是组件,还有业务模块。

快速上手

安装EggBorn.js脚手架

$ npm install -g egg-born

新建项目

$ egg-born project_name
$ cd project_name
$ npm install

EggBorn.js目前提供了2个项目脚手架,分别是

  • front-backend-mysql – 前后端全栈项目模板

  • front – 前端项目模板,后端可采用其他方案

配置mysql连接参数

如果采用了front-backend-mysql模板,请配置mysql连接参数(空数据库即可)

编辑src/backend/config/config.default.js文件

  // mysql
  config.mysql = {
    clients: {
      // donot change the name  
      __ebdb: {
        host: '127.0.0.1',
        port: '3306',
        user: 'travis',
        password: '',
        database: 'egg-born',
      },
    },
  };

运行项目

启动后端服务

$ npm run dev:backend

启动前端服务

$ npm run dev:front

EggBorn.js架构图

系统架构

项目文件结构

模块文件结构