Не удается подключиться к базе данных на диске с помощью SQLite с помощью Express

#javascript #node.js #sqlite #express

Вопрос:

Поэтому я пишу API для своего интерфейсного приложения, чтобы сохранить аутентификацию при входе в систему. По какой-то причине я не могу подключиться к базе данных SQLite, которую я создал с помощью браузера БД. Каждый раз, когда я пытаюсь подключиться, кажется, что он подключается к базе данных в памяти. Я пытался сделать это несколько раз, но безуспешно, пожалуйста, помогите.

Вот структура файла: Структура файла

Примечание: основной файл-admin-route.js и admin.db

В настоящее время я пытаюсь заставить его работать, используя маршрут /admin/register.

Вот код:

 const router = require('express').Router()
const sqlite = require('sqlite3').verbose()

const admin = require('../admin')

let db = new sqlite.Database('../admin.db', (err) => {
    if(err) {
      console.error(err.message)
    }
    console.log("Connected to admin database")    
})

// async function openDB() {
//   const db = await sqlite.open('/services/Admin/admin.db', { Promise })
//   const sql = 'CREATE TABLE IF NOT EXISTS Admin(id INTEGER PRIMARY KEY AUTOINCREMENT, user TEXT, pass TEXT);'
//   await db.run(sql)
// }

router.get('/admin/login', (req, res) => {
    // const result = db.get('Select * from user', (err, results) => {
    //   console.log(results)
    //   // res.render(results)
    // })
    // console.log("Here is the result "   result)
    // console.log(req.body)
  })
  
router.post('/admin/register', (req, res) => {
  const username = req.body.username
  const password = req.body.password
  console.log(username)
  console.log(password)
  const result = db.get('SELECT * FROM admin', (err, results) => {
    if(err) {
      console.log(err)
    } else {
      console.log(results)
    }
  })
})
  
router.post('/admin/user', (req, res) => {
    console.log(req.body)
})


module.exports = router
 

Комментарии:

1. Сообщение об ошибке: { Ошибка: Ошибка SQLITE_ERROR: нет такой таблицы: администратор —> в базе данных#get(«ВЫБЕРИТЕ * ОТ администратора», [Функция])

2. Согласно сообщению об ошибке, проблема не в соединении, а в том, что вы пытаетесь выбрать из таблицы, которой не существует.

3. Но таблица действительно существует. Я полагаю, что он подключается к базе данных в памяти? Я проверил, существует ли таблица, используя браузер БД.

4. Вы видите "Connected to admin database" в консоли? Как вы думаете, почему он подключен к «базе данных в памяти»?

5. Да, вы правы, я только что увидел другую базу данных в корневом каталоге, на которую я не смотрел. Я предполагаю, что это указывает на неправильную базу данных, но я почти уверен, что путь к файлу правильный?