Модуль SQLite3 пишет что параметр row - undefined. Что делать?
const sqlite3 = require('sqlite3').verbose();
const db = new sqlite3.Database(`./datebases/трьч.db`, sqlite3.OPEN_READONLY);
const week = ["Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота"];
db.serialize(() => {
for (var ever = 0; ever < 6; ever++) {
db.each(`SELECT rowid FROM ${week[ever]}`, (err, row) => {
console.log(`${row.id} and ${row._8A}`);
})
}
})
В базе данных записаны данные и эти таблицы. get, all не помогают.
console.log(err); пишет console.log(${row.id} and ${row._8A}); TypeError: Cannot read property 'id' of undefined
Ответы (1 шт):
Автор решения: nörbörnën
→ Ссылка
Вы показываете рабочий кусок кода, это можно проверить:
Создаю базу данных, таблицы и наполняю данными:
const path = require('path');
const sqlite3 = require('sqlite3').verbose();
const filepath = path.join(__dirname, 'datebases', 'трьч.db');
const db = new sqlite3.Database(filepath);
const week = ['Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота'];
db.serialize(() => {
for (let daynumber = 0; daynumber < week.length; daynumber += 1) {
const tablename = week[daynumber];
db.run(`CREATE TABLE ${tablename} (info TEXT)`);
db.run(`INSERT INTO ${tablename} (info) VALUES ('${Math.random()}')`);
db.run(`INSERT INTO ${tablename} (info) VALUES ('${Math.random()}')`);
}
});
Запускаю ваш код:
const path = require('path');
const sqlite3 = require('sqlite3').verbose();
const filepath = path.join(__dirname, 'datebases', 'трьч.db');
const db = new sqlite3.Database(filepath, sqlite3.OPEN_READONLY);
const week = ['Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота'];
db.serialize(() => {
for (let daynumber = 0; daynumber < week.length; daynumber += 1) {
const tablename = week[daynumber];
db.each(`SELECT rowid FROM ${tablename}`, (err, row) => {
console.log(daynumber, tablename, err, row, row.rowid, row.id, row._8A);
});
}
});
Вижу в консоли:
0 Понедельник null { rowid: 1 } 1 undefined undefined
0 Понедельник null { rowid: 2 } 2 undefined undefined
1 Вторник null { rowid: 1 } 1 undefined undefined
1 Вторник null { rowid: 2 } 2 undefined undefined
2 Среда null { rowid: 1 } 1 undefined undefined
2 Среда null { rowid: 2 } 2 undefined undefined
3 Четверг null { rowid: 1 } 1 undefined undefined
3 Четверг null { rowid: 2 } 2 undefined undefined
4 Пятница null { rowid: 1 } 1 undefined undefined
4 Пятница null { rowid: 2 } 2 undefined undefined
5 Суббота null { rowid: 1 } 1 undefined undefined
5 Суббота null { rowid: 2 } 2 undefined undefined
Проверено на macOS 10.14.6, nodejs v15.9.0, sqlite_version 3.30.1, пакет sqlite3 v5.0.2
Опыт подсказывает мне, что вы показали не весь код и ошибка происходит в коде, который вы не показали.