Я пытаюсь создать простую веб-страницу на основе пары API.Проблема, с которой я сталкиваюсь, заключается в том, что некоторые из моих API не получили свои данные до загрузки моей страницы.В настоящее время мой код выглядит следующим образом:
app.use(express.static('public'));
app.use(bodyParser.urlencoded({ extended: true }));
app.set('view engine', 'ejs')
app.get('/', function (req, res) {
res.render('index', {weather: null, headlocation: null, lat: null, long: null, imgLinks: null, WebLinks: null, imgLinksFl: null, restLat: null, restLong: null, error: null});
})
// Main Page
app.post('/', function (req, res) {
city = req.body.city;
weatherSearch();
googleStuff();
filckrSearch();
zomatoStart();
res.render('index', {weather: weatherText, headlocation: headLocationText, lat: latLocation, long: longLocation, imgLinks: imageLinks, WebLinks: websiteLinks, imgLinksFl: imageLinksFlick, restLat: latitudeRest, restLong: longitudeRest, error: null});
});
Я хочу, чтобы моя страница отображалась после сбора всех данных.Например, я попробовал простой код (просто пример с псевдокодом):
var flickrdone = '';
if (flickrdone = 'done'){
res.render.......
}
Но даже когда я реализую что-то подобное, моя страница застряла и ничего не происходит.Я новичок в узле / экспрессе и не полностью понял app.post, но независимо от того, сколько я читаю, я не могу решить проблему.Я понимаю, что моя страница находится в состоянии гонки, потому что моя консоль может корректно обновляться при каждом поиске, но моя страница не обновляется.Например, при первом поиске, если я наберу «Sydney», консоль обновится с правильными результатами «Sydney», но страница не будет обновлена.Если я затем выполню второй поиск «Perth», консоль обновится с правильными результатами из «Perth», но страница не будет обновлена.При третьем поиске, если ввести «Брисбен», консоль обновится с правильными результатами из «Брисбен», а затем страница, наконец, обновится с результатами первого поиска «Сидней».Может кто-нибудь объяснить, что идет не так и предложить, как это исправить?