Как избежать OVER_QUERY_LIMIT nodejs - PullRequest
0 голосов
/ 22 мая 2018

Я сталкиваюсь с этой ошибкой каждый раз, когда я хочу создать новое место в моей базе данных, я пытался реализовать setTimeout (), чтобы избежать этого случая, но я не настроен, если я делаю это правильно.Любой совет?

router.post("/",middleware.isLoggedIn ,upload.single("image"),function(req, res){
 
    geocoder.geocode(req.body.place.location, function(err, data){
        while(status == google.maps.GeocoderStatus.OVER_QUERY_LIMIT)
        {      
            setTimeout(3000);
        }  
        if ( err){   
            req.flash("error", err.message);
            console.log("error");  
            return res.redirect("back");
        }
        req.body.place.lat = data[0].latitude;
        req.body.place.lng = data[0].longitude;
    //cloudinary configuration    
    cloudinary.uploader.upload(req.file.path, function(result){
        // add cloudinary url for the image to the campground object under image property
        req.body.place.image = result.secure_url;
        // add author to campground
        req.body.place.author = {
            id: req.user._id,
            username: req.user.username
        };

        Place.create(req.body.place, function(err, newlyCreated){
            if(err){
                res.send(err);
            }else{
                res.redirect("/");
            }
        });
    });
  });
});

1 Ответ

0 голосов
/ 22 мая 2018

Из документации GOOGLE, касающейся ограничений запросов

"Получив ответ с кодом состояния OVER_QUERY_LIMIT, ваше приложение должно определить, какой лимит использования был превышен. Это можно сделать, сделав паузу для 2секунд и повторная отправка того же запроса. Если код состояния по-прежнему OVER_QUERY_LIMIT, ваше приложение отправляет слишком много запросов в день. В противном случае ваше приложение отправляет слишком много запросов в секунду. "

Ваш первый шаг должен быть2 секунды тайм-аут, чтобы определить причину.Если это слишком много в секунду, уменьшайте до тех пор, пока вы больше не получите ошибку.

Cd &

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...