我试图使用npm表在命令行中创建一个表,但它不起作用,让我告诉你我的代码并解释它。
const {table} = require('table');
let data;
let output;
data = [['id','product','name']];
output = table(data);
console.log(output);
connection.connect(e => e
? () => {throw e
? console.log(e)
: false
}
: connection.query("SELECT item_id,product_name,price FROM products",
(e, r) => e
? false
: (console.log(`${JSON.stringify(r,null,'\t')}`),
()=>{for(let i=0;i<r.length;i++){data.push(Object.values(r[i]))}},
output=table(data),
console.log(output)
)
)
)
所以基本上我们从数据库中获取信息作为一个对象数组,然后我将对象转换为道具数组并尝试将它们推入到表的数据数组中,但是,当我是console.logging它时,只有top三排显示......
我认为你的问题在于这一行:
()=>{for(let i=0;i<r.length;i++){data.push(Object.values(r[i]))}}
。您正在定义一个用DB值更新data
的函数,但您从不调用此函数。在此行的末尾添加()
来调用此函数可能会解决问题
()=>{for(let i=0;i<r.length;i++){data.push(Object.values(r[i]))}}()
,但我个人会简化这个逻辑。