mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-18 00:56:02 +00:00
test connection
This commit is contained in:
@@ -1,17 +1,18 @@
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
"env": {
|
env: {
|
||||||
"browser": true,
|
browser: false,
|
||||||
"commonjs": true,
|
commonjs: true,
|
||||||
"es6": true
|
es6: true,
|
||||||
},
|
},
|
||||||
"extends": "eslint:recommended",
|
extends: ['eslint:recommended', 'node'],
|
||||||
"globals": {
|
globals: {
|
||||||
"Atomics": "readonly",
|
Atomics: 'readonly',
|
||||||
"SharedArrayBuffer": "readonly"
|
SharedArrayBuffer: 'readonly',
|
||||||
},
|
},
|
||||||
"parserOptions": {
|
parserOptions: {
|
||||||
"ecmaVersion": 2018
|
ecmaVersion: 2018,
|
||||||
},
|
},
|
||||||
"rules": {
|
rules: {
|
||||||
}
|
'no-unused-vars': 'warn',
|
||||||
};
|
},
|
||||||
|
};
|
||||||
|
|||||||
@@ -4,13 +4,17 @@
|
|||||||
"private": true,
|
"private": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"axios": "^0.19.0",
|
"axios": "^0.19.0",
|
||||||
|
"body-parser": "^1.19.0",
|
||||||
"cors": "^2.8.5",
|
"cors": "^2.8.5",
|
||||||
"cross-env": "^6.0.3",
|
"cross-env": "^6.0.3",
|
||||||
"eslint": "^6.8.0",
|
"eslint": "^6.8.0",
|
||||||
"express": "^4.17.1"
|
"express": "^4.17.1",
|
||||||
|
"mssql": "^6.0.1"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "node src/index.js"
|
"start": "nodemon src/index.js"
|
||||||
},
|
},
|
||||||
"devDependencies": {}
|
"devDependencies": {
|
||||||
|
"nodemon": "^2.0.2"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
13
api/src/connectProcess.js
Normal file
13
api/src/connectProcess.js
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
const mssql = require('mssql');
|
||||||
|
|
||||||
|
process.on('message', async connection => {
|
||||||
|
const { server, port, user, password } = connection;
|
||||||
|
try {
|
||||||
|
const pool = await mssql.connect({ server, port, user, password });
|
||||||
|
const resp = await pool.request().query('SELECT @@VERSION AS version');
|
||||||
|
const { version } = resp.recordset[0];
|
||||||
|
process.send({ version });
|
||||||
|
} catch (e) {
|
||||||
|
process.send({ error: e.message });
|
||||||
|
}
|
||||||
|
});
|
||||||
23
api/src/connection.js
Normal file
23
api/src/connection.js
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
const express = require('express');
|
||||||
|
const router = express.Router();
|
||||||
|
const { fork } = require('child_process');
|
||||||
|
|
||||||
|
router.post('/test', async (req, res) => {
|
||||||
|
const subprocess = fork(`${__dirname}/connectProcess.js`);
|
||||||
|
subprocess.send(req.body);
|
||||||
|
subprocess.on('message', resp => res.json(resp));
|
||||||
|
|
||||||
|
// const { server, port, user, password } = req.body;
|
||||||
|
// let pool;
|
||||||
|
// try {
|
||||||
|
// pool = await mssql.connect({ server, port, user, password });
|
||||||
|
// const resp = await pool.request().query('SELECT @@VERSION AS version');
|
||||||
|
// const { version } = resp.recordset[0];
|
||||||
|
// res.json({ version });
|
||||||
|
// } catch (e) {
|
||||||
|
// res.json({ error: e.message });
|
||||||
|
// }
|
||||||
|
// if (pool) await pool.close();
|
||||||
|
});
|
||||||
|
|
||||||
|
module.exports = router;
|
||||||
@@ -1,12 +1,16 @@
|
|||||||
const express = require("express");
|
const express = require('express');
|
||||||
const cors = require("cors");
|
const bodyParser = require('body-parser');
|
||||||
|
const cors = require('cors');
|
||||||
|
const connection = require('./connection');
|
||||||
const app = express();
|
const app = express();
|
||||||
|
|
||||||
app.use(cors());
|
app.use(cors());
|
||||||
|
app.use(bodyParser.json());
|
||||||
|
|
||||||
app.get("/", function(req, res) {
|
app.get('/', (req, res) => {
|
||||||
// res.json({msg: 'This is CORS-enabled for all origins!'})
|
res.send('DbGate API');
|
||||||
res.send("Hello World");
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
app.use('/connection', connection);
|
||||||
|
|
||||||
app.listen(3000);
|
app.listen(3000);
|
||||||
|
|||||||
1099
api/yarn.lock
1099
api/yarn.lock
File diff suppressed because it is too large
Load Diff
@@ -1,12 +1,9 @@
|
|||||||
import React from "react";
|
import React from "react";
|
||||||
import useFetch from "./useFetch";
|
|
||||||
import "./index.css";
|
import "./index.css";
|
||||||
import Screen from "./Screen";
|
import Screen from "./Screen";
|
||||||
import {CurrentWidgetProvider} from "./widgets/useCurrentWidget";
|
import {CurrentWidgetProvider} from "./widgets/useCurrentWidget";
|
||||||
|
|
||||||
function App() {
|
function App() {
|
||||||
const resp = useFetch("http://localhost:3000", {});
|
|
||||||
console.log("FETCH data", resp.data);
|
|
||||||
return (
|
return (
|
||||||
<CurrentWidgetProvider>
|
<CurrentWidgetProvider>
|
||||||
<Screen />
|
<Screen />
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
|
import axios from 'axios';
|
||||||
import ModalBase from './ModalBase';
|
import ModalBase from './ModalBase';
|
||||||
import { FormRow, FormLabel, FormValue, FormTextField, FormSubmit } from '../utility/forms';
|
import { FormRow, FormLabel, FormValue, FormTextField, FormSubmit } from '../utility/forms';
|
||||||
import { TextField } from '../utility/inputs';
|
import { TextField } from '../utility/inputs';
|
||||||
@@ -6,9 +7,16 @@ import { Formik, Form } from 'formik';
|
|||||||
// import FormikForm from '../utility/FormikForm';
|
// import FormikForm from '../utility/FormikForm';
|
||||||
|
|
||||||
export default function ConnectionModal({ modalState }) {
|
export default function ConnectionModal({ modalState }) {
|
||||||
const handleSubmit = values => {
|
const [sqlConnectResult, setSqlConnectResult] = React.useState('Not connected');
|
||||||
console.log(values);
|
|
||||||
modalState.close();
|
const handleSubmit = async values => {
|
||||||
|
const resp = await axios.post('http://localhost:3000/connection/test', values);
|
||||||
|
console.log('resp.data', resp.data);
|
||||||
|
const { error, version } = resp.data;
|
||||||
|
|
||||||
|
setSqlConnectResult(error || version);
|
||||||
|
|
||||||
|
// modalState.close();
|
||||||
};
|
};
|
||||||
return (
|
return (
|
||||||
<ModalBase modalState={modalState}>
|
<ModalBase modalState={modalState}>
|
||||||
@@ -24,6 +32,7 @@ export default function ConnectionModal({ modalState }) {
|
|||||||
<FormSubmit />
|
<FormSubmit />
|
||||||
</Form>
|
</Form>
|
||||||
</Formik>
|
</Formik>
|
||||||
|
<div>Connect result: {sqlConnectResult}</div>
|
||||||
</ModalBase>
|
</ModalBase>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user