Проблемы с fetch и XMLHttpRequest - PullRequest
0 голосов
/ 17 мая 2018

Во-первых, я нуб и знаю это ... Может быть, вы думаете, что это повторяющийся вопрос, но я прочитал много постов по тому же вопросу, но никто не помог.

Я пытаюсь разработать веб-приложение о рабочих заказах, клиентах, поставщиках и т. Д. У меня есть Rest API с правильными маршрутами, подключенными к базе данных (mysql), и логикой с методами CRUM.Я все еще работаю над серверной частью, и до тех пор, пока несколько дней назад все прошло хорошо, так как я проверил это сначала с Postman, а затем с несколькими простыми тестами, и все работает хорошо.

Дело в том, что я пытаюсьразработать логику (настоящую) моего приложения для доступа к некоторым отдельным элементам объекта json (API возвращает массив, но это не проблема).Мне нужно проверить и сгенерировать серийный номер рабочих заказов в этом формате «число / год».Я попытался с помощью fetch () и XMLHttpRequest получить доступ к данным, и ничего не работает .... Я не могу получить доступ к элементам массива, потому что у меня всегда что-то не так.

Если я попробую это внутри, если мои тесты с использованием fetch () это работает, но если я попробую это внутри моего метода NumberroOT (), я не смогу, я не знаю, что еще делать, поэтому мне нужна помощь, пожалуйста... я схожу с ума от этой штуки !!

Это код, который работает в моем тесте:

describe('TEST logica.js', function () {

  it('Genero el Nº de Orden', async () => {

    var numeroDeOT = laLogica.numeroOT(); //this is the method of my logic I'm testing and it's suposed to do the thing


      //This is the the only code which I could acceed to the json. But this has to go inside the numeroOT() method but only works in the test
      //-------------------------------------------

      var response = await fetch('http://localhost:3000/ots');
      var orden = await response.json();
      var laOrden = orden[orden.length-1]; //the last element/json object of the array
      var elNumero = laOrden.numero_ot; //the element I want to check and generate
      console.log(elNumero);
      //The code to check this element and generate the new one goes down here but that's clear



      //---------------------------------------------

    console.log(numeroDeOT);
    expect(numeroDeOT).to.be.a('String'); //this is to check what my method numeroOT() returns. Usually 'undefined'

  }) //it
}); //describe

1 Ответ

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

Я понял, что два способа, которыми я пытался в своем коде, было невозможно использовать их с узлом (так как я использую узел), поэтому я попробовал этот код в своем методе, и он отлично работает, и я наконец могудоступ к моему массиву объектов JSON!

var options = {
        host : 'localhost',
        port : 3000,
        path : '/ots', // the rest of the url with parameters if needed
        method : 'GET' // do GET
    };

    var request = http.request(options, function (res) {

        console.log("request received");
        var data = '';
        res.on('data', function (chunk) {
            data += chunk;

        });
        res.on('end', function () {
            console.log(data);

        });
    });
    request.on('error', function (e) {
        console.log(e.message);
    });
    request.end();
...