better config implementation from ENV or json file.

using new environment;
params passed as docker-compose params
This commit is contained in:
Dobromir Popov
2021-08-22 23:53:00 +03:00
parent 28ccaba895
commit 913b1a4f32
11 changed files with 11026 additions and 1264 deletions

View File

@@ -1,6 +1,10 @@
const env = process.env.NODE_ENV || 'development';
console.log("ENV: %s", env);
const config = require(__dirname + '/../../config/config.json')[env];
config.host = process.env.DATABASE_HOST || config.host || '127.0.0.1';
config.database = process.env.DATABASE_NAME || config.database || 'iot';
config.username = process.env.DATABASE_USER || config.username;
config.password = process.env.DATABASE_PASS || config.password;
const Sequelize = require("sequelize");
const mongoose = require('mongoose');
@@ -17,7 +21,12 @@ let DevicesSchema = new Schema({
});
var sqlz = new Sequelize(config.database, config.username, config.password,{dialect: config.dialect, logging: false});
console.log('sqlz: Checking config sources: config.host : %s', config.host );
console.log('sqlz: Checking config sources: config.database : %s', config.database );
var sqlz = new Sequelize(config.database, config.username, config.password,
{ dialect: config.dialect,
host: config.host,
logging: false});
var Device = sqlz.define('device', {
id: { type: Sequelize.INTEGER, autoIncrement: true, primaryKey: true },
name: Sequelize.STRING,

View File

@@ -1,5 +1,5 @@
//devicemessages
var mysql = require('mysql');
var mysql = require('mysql2');
// const fs = require('fs');
@@ -7,22 +7,24 @@ var mysql = require('mysql');
// const Sequelize = require('sequelize');
// const basename = path.basename(__filename);
const env = process.env.NODE_ENV || 'development';
console.log("ENV: %s", env);
const config = require(__dirname + '/../../config/config.json')[env];
console.log('DB: Checking config sources: ');
console.log('DB: Checking config sources: process.env.DATABASE_HOST: %s', process.env.DATABASE_HOST);
console.log('DB: Checking config sources: config.host : %s', config.host );
console.log('DB: Checking config sources: process.env.DATABASE_NAME: %s', process.env.DATABASE_NAME);
console.log('DB: Checking config sources: config.database : %s', config.database );
var pool = mysql.createPool({
connectionLimit : 20,
host : process.env.DATABASE_HOST || config.host || '127.0.0.1',
user : process.env.DATABASE_USER || config.username,
password : process.env.DATABASE_PASS || config.password,
database : process.env.DATABASE_DB || config.database
host : process.env.DATABASE_HOST || config.host || '127.0.0.1',
port : process.env.DATABASE_PORT || config.port || '3306',
user : process.env.DATABASE_USER || config.username,
password : process.env.DATABASE_PASS || config.password,
database : process.env.DATABASE_NAME || config.database || 'iot'
});
// var con = mysql.createConnection({
// host : 'localhost',
// user : 'iot',
// password : '!iot_popovi',
// database : 'iot'
// });
//const got = require('got');
pool.on('acquire', function (connection) {

View File

@@ -1,14 +1,17 @@
var mysql = require('mysql');
var mysql = require('mysql2');
const env = process.env.NODE_ENV || 'development';
console.log("ENV: %s", env);
const config = require(__dirname + '/../../config/config.json')[env];
var pool = mysql.createPool({
connectionLimit : 20,
host : config.host,
user : config.username,
password : config.password,
database : config.database
host : process.env.DATABASE_HOST || config.host || '127.0.0.1',
port : process.env.DATABASE_PORT || config.port || '3306',
user : process.env.DATABASE_USER || config.username,
password : process.env.DATABASE_PASS || config.password,
database : process.env.DATABASE_NAME || config.database || 'iot'
});
pool.on('acquire', function (connection) {
console.log('Connection %d acquired', connection.threadId);

View File

@@ -1,10 +1,12 @@
//dependencies
var config = require('./setup_const');
var db = require('./db');
const env = process.env.NODE_ENV || 'development';
console.log("ENV: %s", env);
const config = require(__dirname + '/../config/config.json')[env];
var mosca = require('mosca');
var mqtt_settings = {
port:1883
port:1884
}
if(typeof credentials!=='undefined')
@@ -24,7 +26,7 @@ mqtt.on('clientConnected', function(){
});
var mqtt = require('mqtt');
var mqtt_client = mqtt.connect('mqtt://'+ config.HomeControllerMQTT);
var mqtt_client = mqtt.connect('mqtt://'+ config.mqttIP);
mqtt_client.on('connect', function () {
console.log("MQTT connected. subscribing to topics");
mqtt_client.subscribe('tele/tasmota/STATE');