NodeJS SQLite возврат не определен - PullRequest
0 голосов
/ 03 ноября 2019

Я пытаюсь создать класс для управления моим приложением. Но когда я вызываю функцию 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;
            });
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...