【问题标题】:Node.js How to save data from pg database into variableNode.js如何将pg数据库中的数据保存到变量中
【发布时间】:2021-06-23 20:47:45
【问题描述】:

如何将数据检索到变量中,并将它们插入到特定的位置,以便它可以读取这些数据?

我有 db.js 文件

const pg = require('pg');
const conString = "postgres://name:password@tai.db.elephantsql.com/name";
const client = new pg.Client(conString);

client.connect()

const query = `SELECT name FROM labels`;

let labelsFromDb = [];

client.query(query, (err, res) => {
    if (err) {
        console.error(err);
        return;
    }
    for (let row of res.rows) {
        labelsFromDb.push(row);
    }
    for (let row of labelsFromDb) {
        console.log(row);
    }
    client.end();
});

在执行“node db.js”后,我在控制台中有响应

{ name: 'lab_1' }
{ name: 'lab_2' }
{ name: 'lab_3' }

数据库中的实际数据是什么,它是正确的。

现在我想做的是将这些数据保存到一个变量中。我有

var ctx = document.getElementById('radar');
var chart = new Chart(ctx, {
    type : 'radar',
    data: {
        labels: [],
        datasets: [{
            label: "data_0",
            data: [],
            backgroundColor: ["rgba(255, 255, 132, 0.2)"]
        }]
    }
});

function addData(){...}
function removeData(){...}

我想将我的数据从 db 保存到变量中,并将其放入“标签:”而不是空数组中。可能吗?我该怎么做?

【问题讨论】:

    标签: javascript node.js postgresql chart.js


    【解决方案1】:

    你需要用对象的值替换你的空标签数组,你可以使用这样的地图来实现这一点:

    var ctx = document.getElementById('radar');
    var chart = new Chart(ctx, {
        type : 'radar',
        data: {
            labels: labelsFromDb.map((el) => el.name),
            datasets: [{
                label: "data_0",
                data: [],
                backgroundColor: ["rgba(255, 255, 132, 0.2)"]
            }]
        }
    });
    
    function addData(){...}
    function removeData(){...}
    

    【讨论】:

    • 当然,但是 labelFromDb 是空的:/ labelFromDb 中的值只存在于 client.query(....etc)
    猜你喜欢
    • 2019-03-11
    • 2020-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-19
    • 2020-05-15
    • 2012-04-05
    • 2018-09-05
    相关资源
    最近更新 更多