NodeCloud-Boot
Usage
npm install nodecloud-boot --save
Using with sequelize and mysql:
;; const app = ; const configPath = __dirname;const ncBoot = NCBoot; { //do something before the web server start. return app;} { //doing something before the process exit. } { //init sequelize models in this. } ncBootstartCallback endCallback; const consul = ncBootconsul;const sequelize = ncBootsequelize;const client = ncBootclient;const loadbalance = ncBootloadbalance;const logger = ncBootlogger;
Using without sequelize:
;; const app = ; const configPath = __dirname;const ncBoot = NCBoot; { //do something before the web server start. return app;} { //doing something before the process exit. } ncBoot; const consul = ncBootconsul;const sequelize = ncBootsequelize;const client = ncBootclient;const loadbalance = ncBootloadbalance;const logger = ncBootlogger;
Config file bootstrap-${env}.js
; moduleexports = 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 loadbalance: strategy: 'random' request: forever: true timeout: 60000 brake: enable: true timeout: 60000 ;
Config file config-${env}.js
moduleexports = 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.