如何解决初始化数组时无法读取未定义的属性“推送”
我正在尝试从数据库中读取数据,将其放入一个数组中,然后将其发送到一个 JSON 文件中,当我完成读取数据并开始使用 push 将数组放入 JSON 文件时,我收到一个错误消息:
无法读取未定义的属性 'push'
我在互联网上搜索了这个,人们说数组没有初始化,但我的是,这是我的代码:
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
解决方法
它抱怨的原因很可能是您尝试 reduce
的 map.dades.push( { consum: dada} );
方法中的那个,问题是 map
没有名为 dades
的键。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。