首页 > 解决方案 > 仅从 Node.js MySQL 结果对象中获取价值

问题描述

我正在尝试从 MySQL 列中获取不同值的列表,并将它们返回到单个 JSON 数组中。

我有这个当前代码:

app.get('/experiences/', function(req, res) {
    res.setHeader('Access-Control-Allow-Origin', http://localhost:3000');
    connection.query('SELECT DISTINCT experience FROM questions', function(err, data) {
        err ? res.send(err) : res.json(data);
    });
});

我希望结果看起来像:

{experience: ["1-3","1-5","5+"]}

但它目前看起来像:

[{"experience":"1-3"},{"experience":"1-5"},{"experience":"5+"}]

标签: mysqlnode.jsexpress

解决方案


您可以通过在数组上循环并重新创建具有正确格式的对象来重新格式化您获得的数据对象。
像这样 :

connection.query('SELECT DISTINCT experience FROM questions', function(err, data) {
    if(err)
        res.send(err)
    else {
        let experiences = [];
        data.forEach(function(
            experiences.push(d.experience);
        }
        result = {experience : experiences };
        res.json(result);
    }
});

推荐阅读