https://github.com/MiguelValentine/GDK
欢迎 issues
GDK is a global based framework for node.
$ npm install gdk
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
Example:
bash
bash---console.log(gdk.config)
Example:
bash
update---config
Example2:
bash
upfile---/node/http/index.js
Example:
gdk.runTime.print = function(info){
console.log(info)
}
print---here is a test
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});
```
1
geminiyellow 2015-12-14 17:30:04 +08:00 1
good job !不顶不是中国人。
|
2
zenwong 2015-12-14 17:33:13 +08:00
不好意思,我们又一次没捆严实他,让他从 cnodejs 跑到这里来了,这是我们深圳 node.js 大本营群( 364189010 )的失误。抱歉抱歉。( A :这次广告是不是又有点硬了? B :别哔哔,快走,不然一会还要被打。)
|
3
zenwong 2015-12-14 17:37:37 +08:00 1
GuaPiJS 你值得信赖,作者比代码更帅。
|
4
denghongcai 2015-12-14 18:09:28 +08:00 1
GDK ,走向成功的最好垫脚石
|
5
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 核准判决有效,立即执行 不解释 |
6
MiguelValentine OP @mcfog 所以你家项目怎么 7x24 ? pm2?
|
7
MiguelValentine OP @mcfog 你要是有本质上能解决错误的方法你可以发 pr 。我这种方法中断单 req 比 refork 强的的多。
|