初始化数组时无法读取未定义的 属性 '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 的键.