узел.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. Но в идеале запрос будет и выше этого уровня.
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