nodecloud-boot
v0.8.8
Published
## Usage
Downloads
120
Readme
NodeCloud-Boot
Usage
npm install nodecloud-boot --save
Using with sequelize and mysql:
import NCBoot from 'nodecloud-boot';
import Koa from 'koa';
const app = new Koa();
const configPath = __dirname;
const ncBoot = NCBoot.getInstance(configPath);
function startCallback(webConfig) {
//do something before the web server start.
return app.callback();
}
function endCallback() {
//doing something before the process exit.
}
function initModels(sequelize) {
//init sequelize models in this.
}
ncBoot.init({initModels})(startCallback, endCallback);
const consul = ncBoot.consul;
const sequelize = ncBoot.sequelize;
const client = ncBoot.client;
const loadbalance = ncBoot.loadbalance;
const logger = ncBoot.logger;
Using without sequelize:
import NCBoot from 'nodecloud-boot';
import Koa from 'koa';
const app = new Koa();
const configPath = __dirname;
const ncBoot = NCBoot.getInstance(configPath);
function startCallback(webConfig) {
//do something before the web server start.
return app.callback();
}
function endCallback() {
//doing something before the process exit.
}
ncBoot.initApp(startCallback, endCallback);
const consul = ncBoot.consul;
const sequelize = ncBoot.sequelize;
const client = ncBoot.client;
const loadbalance = ncBoot.loadbalance;
const logger = ncBoot.logger;
Config file bootstrap-${env}.js
import path from 'path';
module.exports = {
web: {
serviceId: null,
serviceName: 'multi-cloud-schedule-service',
port: 3006
},
consul: {
host: '192.168.0.30',
port: 8500,
discoveryHost: null,
timeout: '1s',
interval: '10s'
},
config: {
server: {
name: 'multi-cloud-config-service',
url: '/multi-cloud-config-service/v1/config/:service/:env/inner',
interval: 60000,
watch: false,
client: 'multi-cloud-schedule-service'
},
local: {
path: __dirname,
service: 'config',
ext: 'js'
}
},
logger: {
path: path.resolve(__dirname, '../log')
},
loadbalance: {
strategy: 'random',
request: {
forever: true,
timeout: 60000
}
},
brake: {
enable: true,
timeout: 60000
}
};
Config file config-${env}.js
module.exports = {
dataSource: {
database: 'test',
host: '127.0.0.1',
username: 'root',
password: 'root',
pool: {
min: 10,
max: 100,
idle: 20000,
acquire: 20000
}
}
};
API
NCBoot.getInstance(path): ncBoot
- path: The position of the config file bootstrap-${NODE_ENV}.js
- ncBoot: It will return the nodecloud-boot instance.
ncBoot.initApp(startCallback, endCallback)
- startCallback: function(webConfig), A callback function before server started.
- endCallback: function() A callback function before server stopped.
ncBoot.init(obj): {initApp(startCallback, endCallback)}
- obj: {initModels: function(sequelize)}
- initApp
ncBoot.consul
The consul instance, you can use ncBoot.consul.client to get the original node-consul instance.
ncBoot.sequelize
The sequelize instance.
ncBoot.client
An http client with loadbalance and circuit.
ncBoot.loadbalance
An http client with loadbalance.
ncBoot.logger
The logger instance.