В файле node.js я делаю POST-запрос, прежде чем ответ от POST-запроса будет получен, функция отправляет пробелы в конечную точку

1

В приведенном ниже коде ответ отправляется в конечную точку до завершения выполнения запроса на отправку.

function(req, res) {
  var details;

  getPublisherDetails() {
    getPublisherDetailsFromServer();
  }

  res.send(details);

}

getPublisherDetailsFromServer() {
  var det;
  const JSON = require('circular-json');
  var Client = require('node-rest-client').Client;
  var client = new Client();

  var args = {
    data: {
      grant_type: "client_credentials",
      client_id: "mk",
      client_secret: "Mank8"
    },
    headers: {
      "Content-Type": "application/x-www-form-urlencoded"
    }
  };

  process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";

  client.post(cache.getURL(), args, function(data, response) {
    console.log("Response from server-->" + JSON.stringify(data));
    det = data[Object.keys(data)[0]];
  });

  return det;
}

Выше det не содержит ничего, кроме того, что почтовый запрос завершен

Теги:
asynchronous

1 ответ

2
Лучший ответ

Это работает js async. вам необходимо отправить ответ внутри вашего обратного вызова client.post

function(req,res) {

  const JSON = require('circular-json');
  var Client = require('node-rest-client').Client;
  var client = new Client();
  var args = { 
   data:                                                                                      
   {grant_type:"client_credentials",client_id:"mk" 
       ,client_secret:"Mank8"},
    headers: {"Content-Type": "application/x-www-form-urlencoded"}
   };

  process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";

  client.post(cache.getURL(),args,function (data, response) {

    console.log("Response from server-->"+JSON.stringify(data));

    var det = data[Object.keys(data)[0]];
    res.send(det);

  });
}
  • 0
    Спасибо, получил его. изменил вызов getPublisherDetails, как показано ниже, и отправил «det» из client.post. function (req, res) {getPublisherDetailsFromServer (req, res); }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню