我如何通过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 模板?