我如何通过nodejs返回获取mysql json

Posted

技术标签:

【中文标题】我如何通过nodejs返回获取mysql json【英文标题】:How i get mysql json via nodejs return 【发布时间】:2020-03-13 03:47:18 【问题描述】:

详细信息:下面我有 2 个项目(API 和 BOT Discord)。 我可以从我的 mysql 中获取数据并将其显示在网络上。但我不能在 json 中显示,而不先通过数组。

我需要以 json 格式返回它,这样我就可以从 BOT(也在 nodejs 中)获取数据。

所以,我想删除 [ ] 键以完善我的项目。

criminals.js -> Discord BOT

const res = await axios.get('http://localhost:3001/api/criminals/49');
   console.log(res.data.id);

已尝试更改 res.data.id 但没有结果更改。

CriminalsControll.js -> API

async show(req, res) 
        // Show unique details

        var results = db.query(`SELECT * from lspd WHERE id = $req.params.id`, function (error, results, fields) 
            if (error) throw error;

            //make results 
            var resultJson = JSON.stringify(results);
            resultJson = JSON.parse(resultJson);
            var apiResult = ;

            //add our JSON results to the data table
            apiResult.data = resultJson;

            return res.json(resultJson);
        );

    ,

WEB返回->

[
  
    "id": 49,
    "nom": "Filipe",
    "telephone": "232323",
    "steam": "12345678",
    "crime": "Roubo de veiculo / Tentativa de fuga / Tentativa de Homicidio a Policial.",
    "sanction": "Pegou 1000 de multa por Furto de veiculo. Foi preso por 5 Anos por Roubo de veiculo + 5 anos de tentativa de Fuga",
    "user_id": 5,
    "DateHour": "2019-11-16T21:00:00.000Z"
  
]

感谢任何帮助:

【问题讨论】:

【参考方案1】:

您正在返回一个 javascript 数组,因此您的对象周围有 []。为了访问第一个对象,您必须使用以下方法之一:

假设以下变量是您的 API 响应:

const array = [ id: 1 ]

通过第一个数组键访问:

let criminal = array[0]

console.log(criminal) // id: 1
console.log(criminal.id) // 1

或使用数组解构(仅在 ES6 中可用):

let [first] = array

console.log(first) // id: 1
console.log(first.id) // 1

或使用 lodash/下划线:

let criminal = _.first(array)

console.log(criminal) // id: 1
console.log(criminal.id) // 1

如果您只想从 API (nodejs) 返回对象

// async show ()
let [criminal] = resultJson
return res.json(criminal);

【讨论】:

以上是关于我如何通过nodejs返回获取mysql json的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Nodejs Mysql 获取 JSON 类型作为 JSON 而不是 String

如何创建从 nodejs mysql 模块获取的正确 json 类型数据?

从 Nodejs 中的 mySQL 获取数据时如何从 Async/await 函数获取返回值

通过 NodeJS 获取 JSON 数据时,如何通过 ExpressJS 更新我的 EJS 模板?

如何使用 nodeJS 从 axios 库中获取有效的 JSON 响应

如何从 MySQL 查询中将 json 返回到 GraphQL?