vig
关于vig
是一个专注于Web业务逻辑的组件化框架,主要关心:
- 精减Web业务处理的代码
- 简化常规Web业务的处理
- 加速项目的开发
- 是一个简化Web业务处理的Web框架
- 将Web的业务逻辑标准化,可重用化是vig的主要目标
目标是:
- 模块化(Modular)
- 可插件化(Pluggable)
- 可重入化(Reenterable)
- 可集成化(Integratable)
功能列表
- 组件化,所的功能都是组件级的
- 简化的路由机制
- 简洁,而强大的数据输入校检
- 方便的权限验证功能
- 框架内的事件机制
- 实用的VIG API规范支持
- 简单的文件上传机制
- 简单的模型定义方式(基于waterline)
- 统一的错误处理机制(基于Errorable)
- 组件配置支持与全局配置支持
- 模板支持
快速上手
1、创建一个test.js文件
vi test.js
2、添加如下代码
var app = require('express')();
var vig = require('vig');
vig.init(app);
vig.addHandler(app, {
prefix: '/demo',
urls: ['/', '/hello'],
routers: {
get: function (req, res) {
res.send('Hello world!');
}
}
});
app.listen(10000, function () {
console.log('server running on http://localhost:10000');
});
3、执行
npm install --save vig
npm install --save express
4、测试
npm test
教程
关于async/await支持的几点说明
vig对async/await的支持依赖于用户的开发环境本身,与vig框架无关。
但是开发者需要注意的是:
- async/await无法实现对事件的支持,所以回调函数与async/await是不同的。
- 回调函数不会消失,async/await也无法适用于所有的场景
所以在使用vig框架时需要注意事件与IO回调的区别。
下面再将事件与常规的IO调用的差别说明一下。
- IO的调用本身也是事件。
- IO调用本身也是可以不定期的,比如网络IO。
- 对于时间与任务明确的IO调用,推荐async/awati,比如数据库访问,文件访问等。
- 对于不明确的事件应该使用回调,比如有些网络IO,一些硬件的IO事件,如键盘事件,鼠标事件等。
- async/await无法取代回调函数
安装
$ npm install --save vig
$ yarn add vig
教程与文档
项目地址
https://github.com/calidion/vig
License
Apache-2.0 © calidion