Ajax получает запрос не получая ответа после 5 звонков - PullRequest
1 голос
/ 23 апреля 2019

Я пытаюсь получить некоторую информацию с сервера mongodb на внешний интерфейс с помощью ajax get request.Все работает нормально, за исключением того, что если я пытаюсь вызвать 5 раз функцию javascript, я не получаю никакого ответа от моего локального сервера.

Я попытался установить console.log () для отладки в функции nodejs, похоже, что в шестой раз, когда я вызываю эту функцию, функция nodejs даже не запускается.

javascript ajax код переднего конца:


function addLike(music){

     var request = new XMLHttpRequest();

     request.open('POST', '/AddLike', true);
     request.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
     var myobj = {"music": music};
     request.send(JSON.stringify(myobj));

     setTimeout(function(){

        $.ajax({
          url: "/getAll",
          type: 'GET',
          dataType: 'json', // added data type
          success: function(res) {
            // => the 6th time i launch addLike(music), the function doesn't go there
             update(res);
          }
    });

     }, 200);

} 

функция nodejs:


app.get("/getAll", function(req, res){

    var MongoClient = require('mongodb').MongoClient;
    var url = "mongodb://localhost:27017/";

    MongoClient.connect(url, { useNewUrlParser: true }, function(err, db) {
        if (err) throw err;

        var dbo = db.db("SoundShare");

        var tab = dbo.collection('Musique');

        tab.find({}).toArray(function(err2, result) { 
            if (err2) throw err2;

            res.send(JSON.stringify(result));

            db.close();

        });
    });
});

Как вы можете видеть на изображении ниже, в консоли Firefox последний запрос get ajax не получает никакого ответа.

Valid XHTML.Valid XHTML.

Похоже, это проблема на стороне сервера, но я не понимаю, как ее исправить.

Заранее спасибо за ответ.

1 Ответ

3 голосов
/ 23 апреля 2019

Ваша проблема в том, что вы создаете новое соединение внутри вашей функции / getAll, а размер пула по умолчанию равен 5, как вы можете видеть в документах .

Вы должны создавать соединение при запуске приложения node.js и использовать это соединение во всем приложении вместо создания нового соединения при каждом запросе.

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