sqlite.get node js, получить данные и передать их в функцию

Рейтинг: 1Ответов: 1Опубликовано: 23.02.2023

Я пытаюсь написать функцию которая возвращает значение из базы данных

Ожидал что функция вернет userStatus но вывод undefined

const sqlite3 = require('sqlite3');
const sql = new sqlite3.Database('users.sqlite');
function getuser(id) {
    i = null;
    sql.get("SELECT * FROM users WHERE userId=?", id, (err, row) => {
        if (row)
        {
            i = row.userStatus;

        }
        
    });
    return i;
}
console.log(getuser(1))

Ответы

▲ 0Принят

написать функцию которая возвращает значение из базы данных

Можно сделать вот такой промисный вариант...

const sqlite3 = require('sqlite3');
const sql = new sqlite3.Database('users.sqlite');

function getuser(id) {
  return new Promise((resolve, reject) => {
    sql.get("SELECT * FROM users WHERE userId=?", id, (err, row) => {
      if (err) return reject(err)
      const i = row?.userStatus ?? null;
      resolve(i)
    });
  })
}
getuser(1)
  .then(i => console.log(i))
  .catch(console.log)