• This repository has been archived on 27/Jan/2021
  • Stars
    star
    141
  • Rank 259,971 (Top 6 %)
  • Language
    TypeScript
  • License
    Other
  • Created about 8 years ago
  • Updated almost 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A web framework focusing on web logic ( or Web Straight Line as we call it), no mvc, no controller

(this project is deprecated in favor of the new fast, simple, async web framework for nodejs: aex)

vig

NPM version Downloads Downloads Build Status Dependency Status Coverage percentage Backers Sponsors

简介

一个受sailsjs启发的新Web框架,但是追求小而美,而又敏捷,灵活,高效。以完成MVC的C端为重点,插件化的Web框架。

交流QQ群

423652352

导航

[缘起] [教程]

示例

国内: https://t1bao.com/

国外: https://forum.webfullstack.me/

vig与其它框架单机性能测试对照

详细见文章:

一个支持async的超高性能的基于node.js的Web业务框架

vig是一个Web业务框架,本身并不想处理Web协议层面的事情。

但是因为协议与上层的业务是紧密关联的,所以未来可能会参与到协议层框架的开发上去。

原因很简单,虽然vig相对于express的折损只有1%多点。 但是如果基于koa的也只折损1%,那么vig的性能就会大大的提高。

关于vig

是一个专注于Web业务逻辑的组件化框架,主要关心:

  1. 精减Web业务处理的代码
  2. 简化常规Web业务的处理
  3. 加速项目的开发
  4. 是一个简化Web业务处理的Web框架
  5. 将Web的业务逻辑标准化,可重用化是vig的主要目标

目标是:

  1. 模块化(Modular)
  2. 可插件化(Pluggable)
  3. 可重入化(Reenterable)
  4. 可集成化(Integratable)

功能列表

  1. 组件化,所的功能都是组件级的
  2. 简化的路由机制
  3. 简洁,而强大的数据输入校检
  4. 方便的权限验证功能
  5. 框架内的事件机制
  6. 实用的VIG API规范支持
  7. 简单的文件上传机制
  8. 简单的模型定义方式(基于waterline)
  9. 统一的错误处理机制(基于Errorable)
  10. 组件配置支持与全局配置支持
  11. 模板支持

快速上手

1、创建一个test.ts文件(推荐使用TS)

vi test.ts

2、添加如下代码

import { VHandler } from "vig";
let app = require('express')();
const handler = new VHandler();

handler.set({
  prefix: '/demo',
  urls: ['/', '/hello'],
  routers: {
    get: async (req, res, scope) => {
      res.send('Hello world!');
    }
  }
});

handler.attach(app);

app.listen(10000, function () {
  console.log('server running on http://localhost:10000');
});

3、安装包

yarn install

4、测试

npm test

关于async/await支持的几点说明

vig对async/await的支持依赖于用户的开发环境本身,与vig框架无关。
但是开发者需要注意的是:

  1. async/await无法实现对事件的支持,所以回调函数与async/await是不同的。
  2. 回调函数不会消失,async/await也无法适用于所有的场景

所以在使用vig框架时需要注意事件与IO回调的区别。

下面再将事件与常规的IO调用的差别说明一下。

  1. IO的调用本身也是事件。
  2. IO调用本身也是可以不定期的,比如网络IO。
  3. 对于时间与任务明确的IO调用,推荐async/awati,比如数据库访问,文件访问等。
  4. 对于不明确的事件应该使用回调,比如有些网络IO,一些硬件的IO事件,如键盘事件,鼠标事件等。
  5. async/await无法取代回调函数

安装

$ npm install --save vig
$ yarn add vig

# 推荐使用1.0版本
$ npm install --save vig@next
$ yarn add vig@next

版本说明

Semver不但引起了版本爆炸,也让版本失去了意义。

所以vig采用 · Effective Versioning · 的版本管理方式。

  1. 尽量保持小版本的一致性,但是不保证小版本升级一定是接口不变的
  2. 不推荐动不动升级,只有你当前的版本不能满足你的需要时再升级

使用yarn取代npm作为包管理软件

由于semver的错误,npm5之后软件的版本已经固定下来,不再执行semver里自动升级的方式。

对于非npm5的用户来说,仍存在严重的包版自动升级风险,因此vig推荐所有人使用yarn来解决你的版本不一致的问题。

项目地址

https://github.com/calidion/vig

Contributors

This project exists thanks to all the people who contribute.

Backers

Thank you to all our backers! 🙏 [Become a backer]

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]

License

Apache-2.0 © calidion

More Repositories

1

webfullstack-awesome

Web全栈工程师常用网址大全
TypeScript
157
star
2

calidion.github.io

已经废弃,更多的请查看 https://t1bao.com
HTML
95
star
3

vigor

Node.js开源论坛与聊天室,原名forim。最新版功能放在https://t1bao.com
JavaScript
31
star
4

errorable

An easy way to define errors and use it easily
TypeScript
29
star
5

vig-api

vig api rules formerly egg api
28
star
6

node-form-validator

configurable form/json data validator
JavaScript
19
star
7

aex

A simple, easy to use, decorated, scoped, object-oriented web server, with async linear middlewares and no more callbacks in middlewares.
TypeScript
17
star
8

ionic.xiv.im

xiv.im的ionic源码
CSS
6
star
9

simple-captcha

a simple node captcha
JavaScript
6
star
10

chinese-noder-the-easy-way

对于中国的开发者来说,快速搭建一个开发环境的脚本(基于Linux,测试平台Ubuntu)
Shell
4
star
11

async-await-nodejs

async-await-nodejs的启动库
JavaScript
4
star
12

bitfreedom.me

我的比特币自由交易之梦
4
star
13

projects

3
star
14

node-i18n

Simplest I18n Solution for all platforms
TypeScript
3
star
15

open-distribute-secure-im

2
star
16

xiv.im

一个程序员的交流用的IM
CSS
2
star
17

random-chars-generator

random charactor generator for utf8
TypeScript
2
star
18

node-notification

用于发送邮件或者短信通知
JavaScript
2
star
19

mobile-viewport-scale

A javascript library for mobile html applications to auto adjust its viewport before the css viewport being applied
JavaScript
2
star
20

Vite-React-Typescript-Sass-Bootstrap-Starter

A vite+react+typescript+sass+bootstrap starter
TypeScript
1
star
21

waterline-paginator

waterline paginator
JavaScript
1
star
22

All-Lives-Matter

Anti-BlackLives Matter
1
star
23

node-ytx

云通讯node版sms实现
JavaScript
1
star
24

consto

JavaScript
1
star
25

req-validator

http request extration and validation
JavaScript
1
star
26

renx.in

一个让你的数据在多个主机上基于web分享的服务
CSS
1
star
27

node-alipay

JavaScript
1
star