refactor - backend single bundle

This commit is contained in:
Jan Prochazka
2020-03-14 10:22:10 +01:00
parent 6a13d9fa19
commit cd58555409
10 changed files with 98 additions and 68 deletions

View File

@@ -27,7 +27,7 @@ module.exports = {
raw: true, raw: true,
}, },
test(req, res) { test(req, res) {
const subprocess = fork(`${__dirname}/../proc/connectProcess.js`); const subprocess = fork(process.argv[1], ['connectProcess']);
subprocess.on('message', resp => res.json(resp)); subprocess.on('message', resp => res.json(resp));
subprocess.send(req.body); subprocess.send(req.body);
}, },

View File

@@ -31,7 +31,7 @@ module.exports = {
const existing = this.opened.find(x => x.conid == conid && x.database == database); const existing = this.opened.find(x => x.conid == conid && x.database == database);
if (existing) return existing; if (existing) return existing;
const connection = await connections.get({ conid }); const connection = await connections.get({ conid });
const subprocess = fork(`${__dirname}/../proc/databaseConnectionProcess.js`); const subprocess = fork(process.argv[1], ['databaseConnectionProcess']);
const newOpened = { const newOpened = {
conid, conid,
database, database,

View File

@@ -1,4 +1,3 @@
const connections = require('./connections'); const connections = require('./connections');
const socket = require('../utility/socket'); const socket = require('../utility/socket');
const { fork } = require('child_process'); const { fork } = require('child_process');
@@ -20,7 +19,7 @@ module.exports = {
const existing = this.opened.find(x => x.conid == conid); const existing = this.opened.find(x => x.conid == conid);
if (existing) return existing; if (existing) return existing;
const connection = await connections.get({ conid }); const connection = await connections.get({ conid });
const subprocess = fork(`${__dirname}/../proc/serverConnectionProcess.js`); const subprocess = fork(process.argv[1], ['serverConnectionProcess']);
const newOpened = { const newOpened = {
conid, conid,
subprocess, subprocess,

View File

@@ -1,3 +0,0 @@
require('./proc');
module.exports = {};

View File

@@ -1,9 +1,3 @@
const express = require('express');
const bodyParser = require('body-parser');
const http = require('http');
const cors = require('cors');
const io = require('socket.io');
require('./deps');
// require('socket.io-client'); // require('socket.io-client');
// "socket.io-client": "^2.3.0", // "socket.io-client": "^2.3.0",
@@ -11,29 +5,14 @@ require('./deps');
// "uuid": "^3.4.0", // "uuid": "^3.4.0",
// "uws": "10.148.1" // "uws": "10.148.1"
const processName = process.argv[2];
if (processName && processName.endsWith('Process')) {
const proc = require('./proc');
const useController = require('./utility/useController'); const module = proc[processName];
const connections = require('./controllers/connections'); module.start();
const serverConnections = require('./controllers/serverConnections'); } else {
const databaseConnections = require('./controllers/databaseConnections'); const main = require('./main');
const tables = require('./controllers/tables');
const socket = require('./utility/socket'); main.start();
}
const app = express();
const server = http.createServer(app);
socket.set(io(server));
app.use(cors());
app.use(bodyParser.json());
app.get('/', (req, res) => {
res.send('DbGate API');
});
useController(app, '/connections', connections);
useController(app, '/server-connections', serverConnections);
useController(app, '/database-connections', databaseConnections);
useController(app, '/tables', tables);
server.listen(3000);

37
packages/api/src/main.js Normal file
View File

@@ -0,0 +1,37 @@
const express = require('express');
const bodyParser = require('body-parser');
const http = require('http');
const cors = require('cors');
const io = require('socket.io');
const useController = require('./utility/useController');
const connections = require('./controllers/connections');
const serverConnections = require('./controllers/serverConnections');
const databaseConnections = require('./controllers/databaseConnections');
const tables = require('./controllers/tables');
const socket = require('./utility/socket');
function start() {
console.log('process.argv', process.argv);
const app = express();
const server = http.createServer(app);
socket.set(io(server));
app.use(cors());
app.use(bodyParser.json());
app.get('/', (req, res) => {
res.send('DbGate API');
});
useController(app, '/connections', connections);
useController(app, '/server-connections', serverConnections);
useController(app, '/database-connections', databaseConnections);
useController(app, '/tables', tables);
server.listen(3000);
}
module.exports = { start };

View File

@@ -1,14 +1,18 @@
const engines = require('@dbgate/engines'); const engines = require('@dbgate/engines');
const driverConnect = require('../utility/driverConnect') const driverConnect = require('../utility/driverConnect');
process.on('message', async connection => { function start() {
try { process.on('message', async connection => {
const driver = engines(connection); try {
const conn = await driverConnect(driver, connection); const driver = engines(connection);
const res = await driver.getVersion(conn); const conn = await driverConnect(driver, connection);
process.send(res); const res = await driver.getVersion(conn);
} catch (e) { process.send(res);
console.log(e); } catch (e) {
process.send({ msgtype: 'error', error: e.message }); console.log(e);
} process.send({ msgtype: 'error', error: e.message });
}); }
});
}
module.exports = { start };

View File

@@ -56,10 +56,14 @@ async function handleMessage({ msgtype, ...other }) {
await handler(other); await handler(other);
} }
process.on('message', async message => { function start() {
try { process.on('message', async message => {
await handleMessage(message); try {
} catch (e) { await handleMessage(message);
process.send({ msgtype: 'error', error: e.message }); } catch (e) {
} process.send({ msgtype: 'error', error: e.message });
}); }
});
}
module.exports = { start };

View File

@@ -1,3 +1,9 @@
require('./connectProcess'); const connectProcess = require('./connectProcess');
require('./databaseConnectionProcess'); const databaseConnectionProcess = require('./databaseConnectionProcess');
require('./serverConnectionProcess'); const serverConnectionProcess = require('./serverConnectionProcess');
module.exports = {
connectProcess,
databaseConnectionProcess,
serverConnectionProcess,
};

View File

@@ -1,5 +1,5 @@
const engines = require('@dbgate/engines'); const engines = require('@dbgate/engines');
const driverConnect = require('../utility/driverConnect') const driverConnect = require('../utility/driverConnect');
let systemConnection; let systemConnection;
let storedConnection; let storedConnection;
@@ -28,10 +28,14 @@ async function handleMessage({ msgtype, ...other }) {
await handler(other); await handler(other);
} }
process.on('message', async message => { function start() {
try { process.on('message', async message => {
await handleMessage(message); try {
} catch (e) { await handleMessage(message);
process.send({ msgtype: 'error', error: e.message }); } catch (e) {
} process.send({ msgtype: 'error', error: e.message });
}); }
});
}
module.exports = { start };