const config = require('./config'); const sqlite3 = require('sqlite3').verbose(); let db = new sqlite3.Database(config.dbFileName, sqlite3.OPEN_READWRITE, (err) => { if (err) { console.error("ERROR: opening DB failed: ", err.message); } console.log('Connected.'); }); let query = (SQL) => { return new Promise((resolve, reject) => { // this if assumes only SELECT has a resultset if (SQL.toUpperCase().startsWith("SELECT")) { db.all(SQL, [], (err, rows) => { if (err) { console.log("A"); reject("ERROR: fetching data: ", err.message); } console.log("B", rows); resolve(rows); }); } else { db.run(SQL, (err) => { if (err) { reject("ERROR: inserting row: ", err.message); } resolve(true); }); } }); }; let close = () => { return new Promise((resolve, reject) => { db.close((err) => { if (err) { reject("ERROR: closing DB: ", err.message); } resolve(true); }); }); } let main = async () => { query('insert into log (message) values (\'Outside\')'); let rows = null; try { await query('insert into log (message) values (\'start\')'); rows = await query('select * from Option'); rows.forEach((row) => { console.log(row.ID + "\t" + row.PutCall); }) await query('insert into log (message) values (\'end\')'); } catch (ex) { console.error('Error', ex); } close(); } main(); module.exports = { query, close };