Как сделать запрос на получение в nodejs - PullRequest
0 голосов
/ 02 мая 2019

Я пытаюсь сделать запрос на получение, чтобы подключить пользователя к Интернету в канале на моем сервере, но я всегда читаю всех пользователей моего сервера.

Я использовал модуль запроса, но он не работает, кажетсяон не передает параметр "_id" по запросу

в curl

curl -s -G \
          -H "X-Auth-Token: Qv5vMPB_6aMCSv5ayQAbQCXkSsBzra_K6BbAqc7S0Fr" \
          -H "X-User-Id: 34YYb2cqqDaFz53ib" \
          -H "Accepts: application/json" \
          --data-urlencode 'query={"_id": "FC77kqfNrH39wEaKG"}' \
          http://localhost:3001/api/v1/channels.online

результат, как я эксперт

{
  "online": [
    {
      "_id": "D539dgygpWrYrNyFz",
      "username": "tranhoang"
    },
    {
      "_id": "34YYb2cqqDaFz53ib",
      "username": "mybot"
    }
  ],
  "success": true
}

модуль запроса использования кода

var request = require('request');

var headers = {
    'X-Auth-Token': 'Qv5vMPB_6aMCSv5ayQAbQCXkSsBzra_K6BbAqc7S0Fr',
    'X-User-Id': '34YYb2cqqDaFz53ib',
    'Accepts': 'application/json'
};

var options = {
    url: 'http://localhost:3001/api/v1/channels.online',
    headers: headers,
    form: {
        query: '{"_id": "FC77kqfNrH39wEaKG"}'
    }
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
        console.log(response);
    }
}

request(options, callback);

и результат

{
  "online": [
    {
      "_id": "D539dgygpWrYrNyFz",
      "username": "tranhoang"
    },
    {
      "_id": "34YYb2cqqDaFz53ib",
      "username": "mybot"
    },
    {
      "_id": "DkiEXfaXRA5EffnHb",
      "username": "sp2"
    }
  ],
  "success": true
}

sp2 не присоединяется к каналу с формой "_id", что я могу сделать, пожалуйста, помогите мне !!

1 Ответ

0 голосов
/ 05 мая 2019

Чтобы сделать HTTP GET запрос в Node.js с использованием модуля request, вам не нужен form в options объект.Вместо этого qs в options является правильным выбором.

Код будет выглядеть так:

var request = require('request');

var headers = {
  'X-Auth-Token': 'Qv5v...S0Fr',
  'X-User-Id': '34YY...53ib',
  'Accepts': 'application/json'
};

var options = {
  uri: 'http://localhost:3001/api/v1/channels.online',
  headers: headers,
  qs: {
    query: {"_id": "FC77kqfNrH39wEaKG"}
  },
  method: 'GET'
};

function callback(error, response, body) {
  if (!error && response.statusCode == 200) {
    console.log(body);
    console.log(response);
  }
}

request(options, callback);
...