-1

I want my vault to wait for db to connect in NodeJS, but I am unable to do so.

const vault = require('./vault');
let vaultDB;
const sqlite3 = require('sqlite3').verbose();
const db = async () => { 
        const retval =  await  new sqlite3.Database('./vault2.sqlite3', (err) => {
          if (err) {
            console.log('Could not connect to database', err)
          } else {
            console.log('1. Connected to database')
          }});
        return retval
    }
db().then( (val) =>
        vaultDB = new vault(val)
);
Abhinav
  • 1
  • 1
  • 1

1 Answers1

0

const vault = require('./vault');
let vaultDB;
const sqlite3 = require('sqlite3').verbose();
const db = async() => {
  const retval = await new Promise((resolve, reject) => {
    new sqlite3.Database('./vault2.sqlite3', (err) => {
      if (err) {
        reject(error)
        console.log('Could not connect to database', err)
      } else {
        resolve()
      }
    });


  })
  
  return retval;
}


db().then((val) =>
  vaultDB = new vault(val)
);
you should convert callback pattern into promise then aync will work
Himanshu
  • 919
  • 5
  • 12