GDK 商用异端框架
 发布于 10 年前  作者 MiguelValentine  7214 次预览  最后一次回复是 10 年前  来自 分享 

https://github.com/MiguelValentine/GDK 欢迎issues

GDK

GDK is a global based framework for node.

Installation

$ npm install gdk

Features

  • No export And require.
  • NO third-module.
  • Micro enough.
  • Flat.
  • Support command.
  • Support Cluster Mode.
  • Locked global error,never shut down.

Docs & Community [还在筹备]

Quick Start

No.GDK dose not support quick start.And I will not provide a generator.

I don’t think less is best.I can guide you to make your our service different with anyone.

At First make sure that your env is in your project and you npm installed gdk.

You can download Learning Project.

1.Create bin File to guide - bin/start.js

require('gdk')

var baseDir  = __dirname;
gdk.load(gdk.c.path.join(baseDir,'../config'));

gdk.boot();

gdk.load(gdk.c.path.join(baseDir,'../http'));

gdk.cluster(function(){
    gdk.http.boot();
});

2.Create config File - config/index.js

var baseFile = __filename;
gdk.updatePath.config = baseFile;

gdk.config.Mcores = true;
gdk.config.errLog = gdk.c.path.join(__dirname,'../err.log');
gdk.config.port = 3000;

3.Create http base - http/index.js

gdk.updatePath.http = __filename;
gdk.http = {};

gdk.load(gdk.c.path.join(__dirname,'./router'));
gdk.load(gdk.c.path.join(__dirname,'./flow'));
gdk.load(gdk.c.path.join(__dirname,'./instance'));

4.Create flow file - http/flow/index.js

gdk.http.flow = function(req,res){
  if(gdk.http.router[gdk.c.url.parse(req.url).path]){
    gdk.http.router[gdk.c.url.parse(req.url).path](req,res);
  }else{
    res.end();
  }
}

5.Create router file - http/router/index.js

gdk.http.router = {};

gdk.http.router['/'] = function(req,res){
  res.end('Hello World!');
}

6.Create instance file - http/instance/index.js

gdk.http.server = function(req,res){
    gdk.http.flow(req,res);
};

gdk.http.boot = function(){
    var server = gdk.c.http.createServer(gdk.http.server);
    server.on('error',function(err){
        gdk.errCatch('server err',err);
    });
    server.listen(gdk.config.port);
};

7.Run

node bin/start.js

Command

1.bash command

Example:

bash---console.log(gdk.config)

2.Hot-update command

Example:

update---config

Example2:

upfile---/node/http/index.js

3.Your command

Example:

gdk.runTime.print = function(info){
  console.log(info)
}
print---here is a test

Cluster message I/O

In gdk Cluster mode.gdk.cluster(cb).cb will always run on workers.

Workers can use process.send to call a runtime function in all workers or master.

Example:

gdk.runTime.print = function(a,b){
  console.log(a+b)
}

process.send({bash:'print',arg:{'hello',' world'}});

Example:

gdk.runTime.MainCore = function(a,b){
  console.log(a+b)
}
  
process.send({bash:'MainCore',arg:{'hello',' world'},Master:true});
9 回复
wwj559

虽然看不懂这是个什么东西,但是好像很厉害的样子

i5ting

只依赖http,还是挺狠的,不过这东西很像https://github.com/base-n/base2-core

alsotang

商用。。。。。。。。这俩字还是挺少见的。。。

MiguelValentine

@alsotang 是从百万pv的项目里抠出来的。稳定性没问题。global写法比较魔性我怕大家接受能力不够。

zenwong

不好意思,我们没捆严实,让他跑出来了,这是我们深圳node.js大本营群(364189010)的失误。抱歉抱歉。(A:是不是有点硬?B:还好还好,快走,不然一会别被打了。)

geminiyellow

我们都用 guapi 。

yorkie

嘻嘻 终于发布了