узел.JS http ' get ' запрос с параметрами строки запроса



у меня есть узел.приложение js, которое является http-клиентом (на данный момент). Так что я делаю:



var query = require('querystring').stringify(propertiesObject);
http.get(url + query, function(res) {
console.log("Got response: " + res.statusCode);
}).on('error', function(e) {
console.log("Got error: " + e.message);
});


это кажется достаточно хорошим способом для достижения этой цели. Однако я несколько обижен, что мне пришлось сделать url + query шаг. Это должно быть инкапсулировано общей библиотекой, но я не вижу этого существующего в узле http библиотека еще и я не уверен, что стандартный пакет npm может выполнить это. Есть ли достаточно широко используемый способ, который лучше?



url.формат метод сохраняет работу по созданию собственного URL. Но в идеале запрос будет и выше этого уровня.

610   3  

3 ответов:

Проверьте запрос модуль.

Это более полнофункциональный, чем встроенный http-клиент узла.

var request = require('request');

var propertiesObject = { field1:'test1', field2:'test2' };

request({url:url, qs:propertiesObject}, function(err, response, body) {
  if(err) { console.log(err); return; }
  console.log("Get response: " + response.statusCode);
});

если вы не хотите использовать внешний пакет, просто добавьте в свои утилиты следующую функцию:

var params=function(req){
  let q=req.url.split('?'),result={};
  if(q.length>=2){
      q[1].split('&').forEach((item)=>{
           try {
             result[item.split('=')[0]]=item.split('=')[1];
           } catch (e) {
             result[item.split('=')[0]]='';
           }
      })
  }
  return result;
}

затем в createServer перезвоните, добавьте атрибут params до

я боролся с тем, как добавить параметры строки запроса к моему URL. Я не мог заставить его работать, пока не понял, что мне нужно добавить ? в конце моего URL, иначе он не будет работать. Это очень важно, так как это сэкономит вам часы отладки, поверьте: там...сделал это.

ниже, это простая конечная точка API, которая вызывает Open Weather API и передает APPID,lat и lon как запрос параметры и возвращаемые данные о погоде в виде

Comments

    Ничего не найдено.