#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. Да, вы правы, я только что увидел другую базу данных в корневом каталоге, на которую я не смотрел. Я предполагаю, что это указывает на неправильную базу данных, но я почти уверен, что путь к файлу правильный?