I have this error in java script : TypeError: db.run is not a function

393 Views Asked by At

I have 3 class : one for the connection to the database, one for the request and one for test the request.

The class of the connection is here :

const sqlite3 = require('sqlite3').verbose();

// ouverture de la base de donnée
let db = new sqlite3.Database('./sport_track_db.db', sqlite3.OPEN_READONLY, (err) => {
  if (err) {
    return console.error(err.message);
  }
  console.log('Connected to the sport_track_db database.');
  module.exports = db;
});

// fermeture de la base de donnée
db.close((err) => {
  if (err) {
    return console.error(err.message);
  }
  console.log('Close the database connection.');
});

The class for the request is here :

var db = require('./sqlite_connection');
var UserDAO = function(){

    this.insert = function(values, callback) {

        let sql = 'INSERT INTO Utilisateur (mail,nom, prenom,dateN,sexe,taille,poids,mdp) VALUES(?,?,?,?,?,?,?,?)';
        db.run(sql,[values[0],values[1],values[2],values[3],values[4],values[5],values[6],values[7]],callback);
            console.log("La valeur ayant pour clé : '"+mail+"' a bien été renseignée dans la table.");

    }

    this.update = function(mail,nom, prenom,dateN,sexe,taille,poids,mdp, callback){
        let sql = 'UPDATE Utilisateur SET nom = (?), prenom = (?), dateN = (?),sexe = (?), taille = (?),poids = (?),mdp = (?) WHERE mail = mail';
        db.run(sql, [mail,nom, prenom,dateN,sexe,taille,poids,mdp], (err) => {
            if (err) {
                throw err;
            }
            console.log("La valeur ayant pour clé : '"+mail+"' a bien été modifié dans la table.");
        });
    }

    this.delete = function(mail_val, callback){
        let sql = 'DELETE FROM Utilisateur WHERE mail = (?)';
        db.run(sql, [mail_val], (err) => {
            if (err) {
                throw err;
            }
            console.log("La valeur ayant pour clé : '"+mail+"' a bien été supprimer dans la table.");
        });
    }

    this.findAll = function(callback){
        let ret;
        let sql = 'SELECT * FROM Utilisateur';
        db.run(sql, [], (err) => {
            if (err) {
                throw err;
            }

            ret = rows;
        });
        return ret;
    }

    this.findByKey = function(mail, callback){
        let sql = 'SELECT * FROM Utilisateur WHERE mail = mail';
        db.run(sql,[], (err) => {
            if (err) {
                throw err;
            }
            return row;
        });
    }
};
var user_dao = new UserDAO();
module.exports = user_dao;

And the test class is here :

var db = require('./sport-track-db').db_connection;
var user_dao = require('./sport-track-db').user_dao;

console.log(require('./sport-track-db').user_dao);


function insertDonnée() {
  user_dao.insert("[email protected]","nom1","prenom1","07/06/04","FEMME","150","55","MotDePasse35");
  user_dao.insert("[email protected]","NOM","Orianne","03/10/01","FEMME","158","52","mdpPOri12");
  user_dao.insert("[email protected]","NOM2","Laureline","08/03/01","FEMME","159","57","mdpLau74");
  setTimeout(modifDonnée, 1000);
}

function modifDonnée() {
  user_dao.update("[email protected]","NOM","Orianne","07/10/01","FEMME","158","52","mdpPOri12");
  setTimeout(suppDonnée, 1000);
}

function suppDonnée() {
  user_dao.delete("[email protected]");
  setTimeout(trouvéTout, 1000);
}

function trouvéTout() {
  user_dao.findAll();
  setTimeout(trouvéUn, 1000);
}

function trouvéUn() {
  user_dao.findByKey("[email protected]");
}

insertDonnée();
modifDonnée();
suppDonnée();
trouvéTout();
trouvéUn();

Please help me I can't fix this error I have already tried to look the cyclic problème but I don't find anything

0

There are 0 best solutions below