博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Cabloy.js:基于EggBorn.js开发的一款顶级Javascript全栈业务开发框架
阅读量:6159 次
发布时间:2019-06-21

本文共 2279 字,大约阅读时间需要 7 分钟。

文档

演示

  • PC:
  • Mobile:

图片描述

EggBorn.js是什么

EggBorn.js是一款顶级Javascript全栈开发框架。前端采用Vue.js + Framework7 + Webpack,后端采用Koa.js + Egg.js,数据库采用mysql。

EggBorn.js在纵向上,将前端和后端打通,形成一个有机的整体,避免前端和后端各自为政的状况;
EggBorn.js在横向上,提炼出“业务模块化”的代码组织模式,通过不同的模块组合实现业务开发,也为大型Web应用不断增长的业务需求提供有力的基础架构。

再谈Cabloy.js

EggBorn.js只是一个基础的全栈开发框架,如果要进行业务开发,还需要考虑许多与业务相关的支撑特性,如:用户管理、角色管理、权限管理、菜单管理、参数设置管理、表单验证、登录机制,等等。特别是在前后端分离的场景下,对权限管理的要求就提升到一个更高的水平。

Cabloy.js在EggBorn.js的基础上,通过“业务模块”的方式,实现一系列支持特性,并将这些特性进行有机的组合,形成完整而灵活的上层生态架构,从而支持具体的业务开发进程。

Cabloy.js架构图

图片描述

先决条件

凡是可以用 JavaScript 来写的应用,最终都会用 JavaScript 来写。 ——Atwood定律

相信,Javascript的深度探索者都会被这句名言激发,共同努力,为Javascript生态添砖加瓦,构建更繁荣的应用生态。

Cabloy.js正是对这一名言的探索之作。Cabloy.js不重复造轮子,而是采用业界最新的开源技术,进行全栈开发的最佳组合。因此,也深度建议您在继续后面的阅读之前,最好能对以下框架有所了解和认知。

  • 前端

  • 后端

Cabloy名字的由来

Cabloy来自蓝精灵的魔法咒语,拼对了Cabloy这个单词就会有神奇的效果。同样,Cabloy.js是有关化学的魔法,基于原子的组合与生化反应,您将实现您想要的任何东西。

Cabloy特性

  • 统一的原子数据管理
  • 统一的用户角色权限管理
  • 对多种运行环境的精细支持
  • 支持多域名多实例运行
  • 灵活的测试驱动开发
  • 内置众多核心模块,提供大量核心特性
有了Cabloy.js,您就可以快速开发各类业务应用。

EggBorn特性

  • 前后端分离:前后端分离开发,深度解耦
  • 业务模块化:页面组件按模块组织
  • 加载方式灵活:模块既可异步加载,也可同步加载
  • 模块高度内聚:模块包括前端页面组件和后端业务逻辑
  • 参数配置灵活:模块中的前后端可以单独进行参数配置
  • 国际化:模块中的前后端均支持独立的国际化
  • 模块隔离:模块的页面、数据、逻辑、路由、配置等元素均进行了命名空间隔离处理,避免模块之间的变量污染与冲突
  • 超级易用的事务处理:只需在路由记录上配置一个参数,即可完美实现数据库的事务处理。
  • 渐进式开发:由于模块的高度内聚,可以将业务以模块的形式沉淀,在多个项目中重复使用,既可贡献到npm开源社区,也可部署到公司内部私有npm仓库。
有了EggBorn.js,从此可复用的不仅仅是组件,还有业务模块。

快速开始

安装

$ npm install -g egg-born

新建项目

$ egg-born cabloy-demo --type=cabloy$ cd cabloy-demo$ npm i

配置MySQL

src/backend/config/config.unittest.js

// mysql  config.mysql = {    clients: {      // donnot change the name      __ebdb: {        host: '127.0.0.1',        port: '3306',        user: 'root',        password: '',        database: 'sys',      },    },  };

src/backend/config/config.local.js

// mysql  config.mysql = {    clients: {      // donnot change the name      __ebdb: {        host: '127.0.0.1',        port: '3306',        user: 'root',        password: '',        database: 'sys',      },    },  };

src/backend/config/config.prod.js

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

测试

$ npm run test:backend

运行

启动后端服务

$ npm run dev:backend

启动前端服务

$ npm run dev:front

GitHub贡献

有任何疑问,欢迎提交 !

转载地址:http://kbofa.baihongyu.com/

你可能感兴趣的文章
Linux macos 常用终端操作
查看>>
企业网络的管理思路
查看>>
Linux磁盘分区与挂载
查看>>
J2se学习笔记一
查看>>
DNS视图及日志系统
查看>>
老李分享:Android性能优化之内存泄漏 3
查看>>
mysql命令
查看>>
来自极客标签10款最新设计素材-系列七
查看>>
极客技术专题【009期】:web技术开发小技巧
查看>>
PHP 简单计算器代码实现
查看>>
正则表达式的知识普及
查看>>
docker使用笔记
查看>>
华为eNSP模拟器上实现FTP服务
查看>>
【全球AI人才排行榜】美国第一,中国仅排名第7
查看>>
微信小程序输入框input
查看>>
MySql字符串函数使用技巧
查看>>
Doc2Vec,Word2Vec文本相似度 初体验。
查看>>
系统ghost后变成一个盘了别的分区的文件怎么找回
查看>>
Win7+Ubuntu11
查看>>
请问华为三层交换机里面的那个从IP是个什么意思? -
查看>>