Я учу себя Nodejs и пытаюсь заполнить страницу списком часов открытия и закрытия близлежащих предприятий из API Yelp.Я создал POST-маршрут к своей странице в Express, вызывая API Yelp с помощью клиента Yelp Fusion.Я могу собрать массив идентификаторов, которые должны использоваться в другой конечной точке, чтобы получить часы работы, однако я продолжаю получать ошибки TOO_MANY_REQUESTS_PER_SECOND
, когда делаю это, несмотря на установку ограничения в запросе.
Server.js
var express = require("express");
var app = express();
var yelp = require("yelp-fusion");
var bodyParser = require("body-parser");
app.use(express.static(__dirname + '/public'));
app.use(bodyParser.urlencoded({extended: true}));
app.set("view engine", "ejs");
let client = yelp.client("API_HIDDEN");
app.get("/", function(req,res){
res.render("landing");
});
///Initial request made to obtain business ids
app.post("/", function(req, res){
client.search({
term: 'cafe',
location: 'Oakland',
limit: 20
}).then(response => {
var ids = [];
var businesses = response.jsonBody.businesses;
var idName = businesses.map(el => {
ids.push(el.id);
});
// request separate endpoint, passing ids from the ```ids```array
for(var x = 0; x < businesses.length; x++){
client.business(ids[x]).then(response => {
console.log(response.jsonBody.hours);
})}.
res.render("search");
}).catch(e => {
console.log(e);
});
})
app.listen(3000);
Я пытался вызвать client.businesses[id]
как внутри, так и вне цикла for, но это также привело к ошибкам.Я запутался в поведении этого, так как я делаю только 20 звонков, что намного ниже минимума, но также и то, как, возможно, передать идентификаторы, если не для массива, поскольку у меня закончились идеи.Заранее благодарю за помощь.