nodejs使用request和bluebird编写的http请求模块

var request = require("request");
var promise = require("bluebird"); //使用bluebird将request库的所有异步方法编译成promise形式,会自动加上Async后缀 request = promise.promisifyAll(request); var curl = (function () { function curl() { } /** * 输入一个url和需要post的数据(如果需要post),然后返回最终访问到的结果. * * @author jie * @date 2015/2/5 * @param string url 需要访问的url. * @param string postData 访问时,需要post过去的数据. * @return promise * */ curl.visitAsync = function (url, postData) { if (postData === void 0) { postData = ""; } try { //request.debug = true;//详细打印请求报告 var res; url = url.trim(); //为没有http开头的url添加http头,必须添加 if (!url.match(/^http./)) { { url = "http://" + url; } } //默认超时时间timeout为20秒,无须设置 var options = { url: url, form: "" }; if (postData) { //使用request库中的form来保存post数据,这样访问的content-type会变成application/x-www-form-urlencoded options.form = postData; //post数据 res = request.postAsync(options); //返回代执行的promise函数 } else{ res = request.getAsync(options); } //返回代执行的promise函数 return res.spread(function (res, body) { return body; }); } catch (ex) { throw ex; } }; //visitAsync return curl;})();module.exports = curl; 使用:test.js import curl = require(".curl"); var tsk = curl.visitAsync("http://www.baidu.com"); tsk.then(body => { console.log(body);}) 看到bluebird库的api有catch()可以捕抓抛出的错误,不知道直接使用try-catch有没有作用呢~~~~~~~~
 https://www.npmjs.com/package/bluebird

转载于:https://www.cnblogs.com/youlechang123/p/6795485.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值