Skip to content

MiguelValentine/GDK

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GDK

GDK is a global based framework for node.

Installation

$ npm install gdk

Features

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

Docs & Community[Writing]

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 shell 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});

About

Guapi Develop Kit

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published