#javascript #node.js #json #express #xml-parsing
#javascript #node.js #json #экспресс #синтаксический анализ xml
Вопрос:
Хорошо… Я хотел бы создать api, но, похоже, я не могу выводить данные, я проанализировал их из XML-файла и могу консоль.регистрируйте необходимые данные, но когда я хочу вывести данные в браузер, я просто получаю пустой массив какие-либо предложения?
const express = require('express');
const app = express();
const fs = require('fs');
const xmlParser = require("xml2json")
app.get('/posts', (req, res) => {
let xmin = req.query.xmin;
let xmax = req.query.xmax;
let ymin = -Math.abs(req.query.ymin);
let ymax = -Math.abs(req.query.ymax);
const foodRatings = fs.readFile( "./FHRS433en-GB.xml", function(err, data) {
const xmlObj = xmlParser.toJson(data, {reversible: true, object: true})
const estDetail = xmlObj["FHRSEstablishment"]['EstablishmentCollection']['EstablishmentDetail']
for (let i=0;i < estDetail.length;i ) {
let latitude = estDetail[i]["Geocode"]["Latitude"]
let longitude = estDetail[i]["Geocode"]["Longitude"]
if ((typeof latitude !== "undefined") amp;amp; (typeof longitude !== "undefined")) {
if ((latitude['$t'] >= xmin amp;amp; latitude['$t'] <= xmax) amp;amp; (longitude['$t'] >= ymin amp;amp; longitude['$t'] <= ymax)) {
// jsonData = estDetail[i];
let jsonData = [];
var config = JSON.parse(estDetail[i]);
jsonData.push(config);
console.log(jsonData);
res.json(jsonData);
}
}
}
})
});
Когда я вижу, что люди выводят данные онлайн, у них есть данные json в объекте, который напрямую ссылается на строку, а не на файл, я не знаю, как я буду извлекать данные из файла, передавая их в пустой массив, который я могу вызвать с помощью res.json(jsonData)?
Заранее благодарю
Ответ №1:
вы пытались
return res.json(data)
Я вижу, что вы находитесь в цикле for, поэтому, вероятно, вы хотите сделать это вне его
Комментарии:
1. я обнаружил, что я делал неправильно, я использовал return res.json(jsonData), просто я допустил глупую ошибку и не добавил параметры в запрос get Большое вам спасибо!!