Я пытаюсь создать класс для управления моим приложением. Но когда я вызываю функцию getArticle и пытаюсь присвоить значению строки значение let, для него всегда устанавливается значение undefined. И когда я делаю console.log (row) в функции, он правильно отображает данные. Я искал ответ, но не понял, где моя проблема. Может кто-нибудь объяснить мне, где моя ошибка? Спасибо.
let sqlite = require('sqlite3');
class database {
constructor(dbPath) {
//CREATE AND CONNECT TO DB AT dbPath
this.client = new sqlite.Database(dbPath, (err) => {
if (err) {
return console.error(err.message);
}
console.log('Connected to db SQL Lite : ' + dbPath);
// CREATE TABLES
const query = `CREATE TABLE IF NOT EXISTS "articles" (
\t"id"\tINTEGER PRIMARY KEY AUTOINCREMENT,
\t"title"\tTEXT NOT NULL UNIQUE,
\t"body"\tTEXT NOT NULL,
\t"namespace"\tTEXT NOT NULL
);`;
this.client.run(query, (err) => {
if (err) {
return console.error(err.message);
}
return console.log('Default tables have been created or were already present');
})
})
}
getArticle(id) {
if (id !== undefined && typeof id == "number") {
const sql = `SELECT * FROM articles WHERE id = ?`;
this.client.get(sql, [id], (err, row) => {
if (err) {
return console.error(err.message);
}
return row;
});
}
}
}