Javascript 我在java脚本中遇到了这个错误:TypeError:db.run不是一个函数

Javascript 我在java脚本中遇到了这个错误:TypeError:db.run不是一个函数,javascript,npm,node-sqlite3,Javascript,Npm,Node Sqlite3,我有3个类:一个用于连接数据库,一个用于请求,一个用于测试请求 连接的类别如下所示: 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.erro

我有3个类:一个用于连接数据库,一个用于请求,一个用于测试请求

连接的类别如下所示:

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.');
});
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;
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("mail@gmail.com","nom1","prenom1","07/06/04","FEMME","150","55","MotDePasse35");
  user_dao.insert("ori@gmail.com","NOM","Orianne","03/10/01","FEMME","158","52","mdpPOri12");
  user_dao.insert("lau@gmail.com","NOM2","Laureline","08/03/01","FEMME","159","57","mdpLau74");
  setTimeout(modifDonnée, 1000);
}

function modifDonnée() {
  user_dao.update("ori@gmail.com","NOM","Orianne","07/10/01","FEMME","158","52","mdpPOri12");
  setTimeout(suppDonnée, 1000);
}

function suppDonnée() {
  user_dao.delete("mail@gmail.com");
  setTimeout(trouvéTout, 1000);
}

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

function trouvéUn() {
  user_dao.findByKey("ori@gmail.com");
}

insertDonnée();
modifDonnée();
suppDonnée();
trouvéTout();
trouvéUn();
请求的类位于此处:

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.');
});
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;
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("mail@gmail.com","nom1","prenom1","07/06/04","FEMME","150","55","MotDePasse35");
  user_dao.insert("ori@gmail.com","NOM","Orianne","03/10/01","FEMME","158","52","mdpPOri12");
  user_dao.insert("lau@gmail.com","NOM2","Laureline","08/03/01","FEMME","159","57","mdpLau74");
  setTimeout(modifDonnée, 1000);
}

function modifDonnée() {
  user_dao.update("ori@gmail.com","NOM","Orianne","07/10/01","FEMME","158","52","mdpPOri12");
  setTimeout(suppDonnée, 1000);
}

function suppDonnée() {
  user_dao.delete("mail@gmail.com");
  setTimeout(trouvéTout, 1000);
}

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

function trouvéUn() {
  user_dao.findByKey("ori@gmail.com");
}

insertDonnée();
modifDonnée();
suppDonnée();
trouvéTout();
trouvéUn();
测试类在这里:

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.');
});
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;
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("mail@gmail.com","nom1","prenom1","07/06/04","FEMME","150","55","MotDePasse35");
  user_dao.insert("ori@gmail.com","NOM","Orianne","03/10/01","FEMME","158","52","mdpPOri12");
  user_dao.insert("lau@gmail.com","NOM2","Laureline","08/03/01","FEMME","159","57","mdpLau74");
  setTimeout(modifDonnée, 1000);
}

function modifDonnée() {
  user_dao.update("ori@gmail.com","NOM","Orianne","07/10/01","FEMME","158","52","mdpPOri12");
  setTimeout(suppDonnée, 1000);
}

function suppDonnée() {
  user_dao.delete("mail@gmail.com");
  setTimeout(trouvéTout, 1000);
}

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

function trouvéUn() {
  user_dao.findByKey("ori@gmail.com");
}

insertDonnée();
modifDonnée();
suppDonnée();
trouvéTout();
trouvéUn();
请帮助我,我无法修复此错误
我已经尝试查找循环问题,但没有找到任何东西

可能是put
module.exports=db在该文件的底部,而不是在回调中,我尝试了它不起作用你知道你打开了db
sqlite3.open_READONLY
。。。并尝试插入/更新等,对吗?是的,我的数据库在我的包中,我想操纵其中的数据