Замена запроса на выборку узла в express - PullRequest
0 голосов
/ 06 августа 2020

У меня есть проект, который требует использования нескольких вызовов API IOTA. Итак, вот пример API GetNodeInfo

url: https://docs.iota.org/docs/node-software/0.1/iri/references/api-reference#getnodeinfo

или

   var request = require('request');

    var command = {"command": "getNodeInfo"}

    var options = {
       url: 'http://localhost:14265',
       method: 'POST',
       headers: {
      'Content-Type': 'application/json',
      'X-IOTA-API-Version': '1'
           },
      json: command
     };

   request(options, function (error, response, data) {
     if (!error && response.statusCode == 200) {
       console.log(data);
     }
     });

Однако я узнал, что недавно библиотека запросов устарела отсюда: https://github.com/request/request/issues/3142

Кроме того, мне нужно использовать Promises и async / await, потому что мне нужно выполнять несколько вызовов api синхронно, с большей скоростью и производительностью . Итак, я попытался заменить запрос на node-fetch

 const fetch = require('node-fetch');
    const express = require('express');
    const router = express.Router();


    var url ='http://localhost:14265';
    var command = {
       'command': 'getNodeInfo'
     }

    var options = {
        method: 'POST',
        headers: {
       'Content-Type': 'application/json',
       'X-IOTA-API-Version': '1'
            },
       json: command
        };
    
    router.get("/test", (req, res) => {
        fetch(url, options)
          .then(res => res.json())
          .then(json => {
              console.log('====================================');
              console.log(JSON.stringify(json));
              console.log('====================================');
             // return data and do something
          })
          .catch(err => console.log(err));

      })

    module.exports = router;

Но когда я сохраняю команду json:, я получаю сообщение об ошибке неверных параметров, и если я заменяю его на body: command, я получить эту ошибку

{"exception": "java .lang.IllegalStateException: ожидалось BEGIN_ARRAY, но было STRING в строке 1 столбец 2 путь $ [0]", "duration": 1}

Итак, посоветуйте, пожалуйста, что мне делать? потому что я пытался выполнить несколько вызовов api с запросом для одной функции и работал медленно.

Следует ли мне продолжать использовать запрос, даже если он устарел и имеет некоторые проблемы, или его можно заменить чем-то другим ??

Помогите, пожалуйста!

Заранее спасибо.

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