GDK 商用异端框架

2015-12-14 17:25:48 +08:00
 MiguelValentine

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

GDK

GDK is a global based framework for node.

Installation

$ npm install gdk

Features

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
bash---console.log(gdk.config)

2.Hot-update command

Example:
bash
update---config

Example2:
bash
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});
```

3747 次点击
所在节点    Node.js
7 条回复
geminiyellow
2015-12-14 17:30:04 +08:00
good job !不顶不是中国人。
zenwong
2015-12-14 17:33:13 +08:00
不好意思,我们又一次没捆严实他,让他从 cnodejs 跑到这里来了,这是我们深圳 node.js 大本营群( 364189010 )的失误。抱歉抱歉。( A :这次广告是不是又有点硬了? B :别哔哔,快走,不然一会还要被打。)
zenwong
2015-12-14 17:37:37 +08:00
GuaPiJS 你值得信赖,作者比代码更帅。
denghongcai
2015-12-14 18:09:28 +08:00
GDK ,走向成功的最好垫脚石
mcfog
2015-12-14 19:31:00 +08:00
扫了一眼,没看明白干啥用的,只看到

> Locked global error,never shut down.

死刑。

回头一想不能冤枉人啊,点进去搜了一把

https://github.com/MiguelValentine/GDK/blob/5502399d0489a2d64cd7e03741df5922f80b1ef5/err/index.js#L16

核准判决有效,立即执行

不解释
MiguelValentine
2015-12-14 20:01:54 +08:00
@mcfog 所以你家项目怎么 7x24 ? pm2?
MiguelValentine
2015-12-14 20:09:09 +08:00
@mcfog 你要是有本质上能解决错误的方法你可以发 pr 。我这种方法中断单 req 比 refork 强的的多。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/243486

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX