初始化数组时无法读取未定义的 属性 'push'
Cannot read property 'push' of undefined when i initialized the array
我正在尝试从数据库中读取数据并将其放入数组中,然后将其发送到 JSON 文件中,当我完成读取数据并开始将数组放入 JSON 文件推送我收到一条错误消息:
Cannot read property 'push' of undefined
我在网上搜索了一下,有人说数组没有初始化,但我的已经初始化了,这是我的代码:
const sqlite3 = require('sqlite3').verbose();
const fs = require("fs");
dades = [];
// obre la base de dades SQLLite
let db = new sqlite3.Database('EstacioCasa.db', sqlite3.OPEN_READONLY, (err) => {
if (err) {
console.log('-Error in the database connection-');
return console.error(err.message);
}
console.log('-Connected to database-');
});
db.serialize(() => {
db.each(`SELECT cons_w
FROM Consum`, (err, row) => {
if (err) {
console.error(err.message);
}
dades.push(row.cons_w);
console.log(dades);
});
});
setTimeout(function() {
const dadaObj = dades.reduce((map, dada) => {
map.dades.push( { consum: dada} );
return map;
}, { energia: []})
fs.writeFileSync("./energia.json", JSON.stringify(dadaObj, null, 4));
}, 3000);
db.close((err) => {
if (err) {
console.error(err.message);
}
console.log('-Disconnected from database-');
});
以及当我执行脚本时的控制台:
Console log
它抱怨的 dades 很可能是 reduce
方法中你尝试的那个 map.dades.push( { consum: dada} );
问题是 map
没有名为 dades
的键.
我正在尝试从数据库中读取数据并将其放入数组中,然后将其发送到 JSON 文件中,当我完成读取数据并开始将数组放入 JSON 文件推送我收到一条错误消息:
Cannot read property 'push' of undefined
我在网上搜索了一下,有人说数组没有初始化,但我的已经初始化了,这是我的代码:
const sqlite3 = require('sqlite3').verbose();
const fs = require("fs");
dades = [];
// obre la base de dades SQLLite
let db = new sqlite3.Database('EstacioCasa.db', sqlite3.OPEN_READONLY, (err) => {
if (err) {
console.log('-Error in the database connection-');
return console.error(err.message);
}
console.log('-Connected to database-');
});
db.serialize(() => {
db.each(`SELECT cons_w
FROM Consum`, (err, row) => {
if (err) {
console.error(err.message);
}
dades.push(row.cons_w);
console.log(dades);
});
});
setTimeout(function() {
const dadaObj = dades.reduce((map, dada) => {
map.dades.push( { consum: dada} );
return map;
}, { energia: []})
fs.writeFileSync("./energia.json", JSON.stringify(dadaObj, null, 4));
}, 3000);
db.close((err) => {
if (err) {
console.error(err.message);
}
console.log('-Disconnected from database-');
});
以及当我执行脚本时的控制台: Console log
它抱怨的 dades 很可能是 reduce
方法中你尝试的那个 map.dades.push( { consum: dada} );
问题是 map
没有名为 dades
的键.