Читать базу данных SQLite с Node.js - PullRequest
1 голос
/ 12 июля 2020

Имея эту базу данных SQLite, я пытаюсь прочитать из нее данные. Итак, из таблицы Athlete я хочу прочитать первые 3 столбца.

введите описание изображения здесь

Это код (app. js):

var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database('ocs_athletes');

db.serialize(function () {
  db.each('SELECT athlete_id, name, surname FROM Athlete', function (err, row) {
    console.log('User: ', row.athlete_id, row.name, row.surname);
  });
});

db.close();

Файл app. js находится в той же папке, что и файл db - ocs_athletes.

Запуск в cmd node app.js возвращает это сообщение об ошибке:

/home/rares/Documents/Projects/OCSapp/app.js:6
    console.log('User: ', row.athlete_id, row.name, row.surname);
                              ^

TypeError: Cannot read property 'athlete_id' of undefined
    at /home/rares/Documents/Projects/OCSapp/app.js:6:31
    at replacement (/home/rares/Documents/Projects/OCSapp/node_modules/sqlite3/lib/trace.js:25:27)
    at Statement.errBack (/home/rares/Documents/Projects/OCSapp/node_modules/sqlite3/lib/sqlite3.js:14:21)

Почему это происходит?

1 Ответ

3 голосов
/ 12 июля 2020

Попробуйте подключиться к базе данных следующим образом.

let db = new sqlite3.Database('./ocs_athlete.db', (err) => {
  if (err) {
    console.error(err.message);
  }
  console.log('Connected to the my database.');
});

Укажите путь к файлу .db. Это будет работать.

Есть три режима открытия:

sqlite3.OPEN_READONLY: открыть базу данных только для чтения.

sqlite3.OPEN_READWRITE: открыть базу данных для чтения и запись.

sqlite3.OPEN_CREATE: откройте базу данных, если база данных не существует, создайте новую базу данных.

Чтобы открыть образец базы данных chinook для чтения и записи, вы можете сделать это как следует:

let db = new sqlite3.Database('./ocs_athlete.db', sqlite3.OPEN_READWRITE, (err) => {
  if (err) {
    console.error(err.message);
  }
  console.log('Connected to the ocs_athlete database.');
});
...