web server
This commit is contained in:
49
web-server/src/db.js
Normal file
49
web-server/src/db.js
Normal file
@@ -0,0 +1,49 @@
|
||||
const sql = require('mssql');
|
||||
|
||||
let poolPromise;
|
||||
|
||||
function boolFromEnv(value, fallback) {
|
||||
if (value === undefined || value === null || value === '') return fallback;
|
||||
return ['1', 'true', 'yes'].includes(String(value).toLowerCase());
|
||||
}
|
||||
|
||||
function getConfig() {
|
||||
return {
|
||||
server: process.env.SQLSERVER_HOST || 'localhost',
|
||||
port: Number(process.env.SQLSERVER_PORT || 1433),
|
||||
database: process.env.SQLSERVER_DATABASE || 'RobotInstaller',
|
||||
user: process.env.SQLSERVER_USER,
|
||||
password: process.env.SQLSERVER_PASSWORD,
|
||||
options: {
|
||||
encrypt: boolFromEnv(process.env.SQLSERVER_ENCRYPT, false),
|
||||
trustServerCertificate: boolFromEnv(process.env.SQLSERVER_TRUST_SERVER_CERTIFICATE, true)
|
||||
},
|
||||
pool: {
|
||||
max: 10,
|
||||
min: 0,
|
||||
idleTimeoutMillis: 30000
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
async function getPool() {
|
||||
if (!poolPromise) {
|
||||
poolPromise = sql.connect(getConfig());
|
||||
}
|
||||
|
||||
return poolPromise;
|
||||
}
|
||||
|
||||
async function closePool() {
|
||||
if (!poolPromise) return;
|
||||
|
||||
const pool = await poolPromise;
|
||||
await pool.close();
|
||||
poolPromise = undefined;
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
sql,
|
||||
getPool,
|
||||
closePool
|
||||
};
|
||||
Reference in New Issue
Block a user