一个只关注C端的快速原型化Node.js框架--vig
Posted 田一块Web全栈
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个只关注C端的快速原型化Node.js框架--vig相关的知识,希望对你有一定的参考价值。
缘起
大部分情况下,人们都会比较热衷于全面的MVC框架,这当然是没错的。但是过于关注MVC的结果就是框架能解决的事情会变的非常的有限。有时候就连Web业务最基本的业务的问题都没有办法解决好。同时MVC的概念比较宽泛,而Web开发是有非常复杂的业务的,并且有很多业务是共用的。所以这些共用的部分的便利化其实是一个很重要的问题。但是通常的MVC框架并不能解决这些问题。
有些框架,比如meteor与sailsjs,解决了很多的Web业务问题,但是他们又特别重,就相当于一个黑洞,让你一进去就无法再出来。即不能离开它又不能方便的引用其它的成果。
vig框架作者本身也是sailsjs的用户,sailsjs提供了很多很便利的服务,但是Sailsjs将这些服务设定的非常死,从而让代码的扩展性与模块化能力受到影响。并且Sailsjs的理念还是受MVC约束的。
所以基于突破sailsjs的限制,以及以上存在的问题就有了vig框架。
vig试图解决什么问题?
vig框架提供更加深入的Web业务解决方式,集中精力做C端,让框架更加的可兼容可扩展的想法
vig框架试图让你即可以得到业务处理的便捷性,也可以得到应用框架的灵活性,选择的多元化。所以vig框架的终极目标是不限制服务器,不限制ORM,不限制模板。
对于基础服务器架构express, koa, restify等都是vig支持的目标,但是目前以支持express为支持目标。
对于ORM来说,bookshelf, objection, orm, sequelize, waterline等都是潜在的支持目标。但是目前以waterline为首要支持目标。
对于模块来说,jade, ejs,nunjucks,swig等都是支持目标。但是目前以nunjucks为首要测试模板。
vig是什么?
所以vig不是Web框架,它是Web业务框架,简单来说就是将Web相关的常规处理简单化的框架。
常见的处理包括
1、输入字段检验与条件检验,以及字段的提取
2、简便的错误定义与返回
3、权限鉴定
4、文件上传(云上传)
5、微服务
6、更多,更方便的OAuth支持
7、websocket/socket.io等长连接的处理
8、服务器的基本安全
9、API规范化
10、常规的后台脚手架 11、简便的子中间件 12、项目内事件通讯
等。目前vig已经实现了其中的[1,2,3,4,9,11,12],下面还会继续完善、优化。
vig会不会与我正在做的项目冲突呢?
vig目前是基于express开发的,并且已经在原来的express项目上进行了应用。vig对于原来的项目完全没有任何的干扰。只要URL没有冲突,vig就不会与原来的项目有任何冲突。目前vig的第一个实例就是将nodeclub项目的代码完全迁移到vig上来。中间有一些vig代码与nodeclub旧代码共存的时期,但是两者完全不会冲突。
为什么要使用vig?
vig的创建基于以下几个原则:
1、更少的代码
2、更加清晰的模块与结构
3、可共用的代码
4、更多的选择性。
如果这些理念与你的理念是共通的,那么vig将会帮助你更快的达成你的项目目标。
基于vig,作者只花了不到一个星期就将nodeclub项目里所有的除非模板外的代码全部替换成了vig,并且已经可以运行。
由于openshift不是很稳定,所以有时候会访问不了。
有没有应用vig的案例?
vig的第一个安全就是对nodeclub代码应用vig框架,目前已经完成。代码在:
https://github.com/calidion/forim
如果你对迁移的过程感兴趣可以看看上面的代码提供过程。大部分的时间里修旧代码与新代码是共存的。所以可以了解vig框架的独立性是很强的。适合项目的任何阶段引入。
vig项目的源码
参与与讨论
vig项目是一个开源的项目,所以欢迎任何人参与提交PR。
也欢迎加入:Nodejs开源项目交流群: 312685910 进行交流讨论
以上是关于一个只关注C端的快速原型化Node.js框架--vig的主要内容,如果未能解决你的问题,请参考以下文章
带有 Node.js 后端的移动应用程序 - 为客户端开发选择啥框架?