Nodejs + Q promise +方法根据urltypes返回
我使用节点js作为后端,也使用q promise包。
问题:我正在尝试获取第三方产品详细信息。 1. www.abcd.com 2. www.xyz.com – 这个方法我在后台处理。
可能的url:
- ?本地主机:8080 /searchtypes= “ABCD”;
- ?本地主机:8080 /searchtypes= “XYZ”;
-
本地主机:8080 /search;
如果上面的URLtypes是abcd,则意味着需要search一些不同的thridparty(www.abcd.com)http url;
如果上面的URLtypes是xyz,则意味着需要search其他一些不同的thridparty(www.xyz.com)http url
如果上面的URL没有获得types意味着需要searchwww.abcd.com,如果结果find意味着然后返回响应,如果结果未find意味着需要调用www.xyz.comurl,然后返回响应。 (注意 – 这里有两个第三方API需要调用)
码:
router.get('/search', function(req, res, next) { if (!( typeof req.query === 'undefined' || req.query === null || req.query == "")) { var type = req.query; } var spec = { resp : {} }; Q(spec).then(function(spec) { var deferred = Q.defer(); var optionsget = { host : 'abcd.com', method : 'GET' }; var reqGet = https.request(optionsget, function(res) { var getProductInfo = ''; res.on('data', function(d) { getProductInfo += d; }); res.on('end', function() { if (( typeof message == 'undefined') && (!( typeof items === 'undefined' || items === null))) { spec.resp.list = items; deferred.resolve(spec); } else { spec.resp.message = message; deferred.reject(spec); } }); }); reqGet.end(); reqGet.on('error', function(e) { console.log(e); deferred.reject(spec); }); return deferred.promise; }).then(function(spec) { var deferred = Q.defer(); var optionsget = { host : 'xyz.com', method : 'GET' }; var reqGet = https.request(optionsget, function(res) { var getProductInfo = ''; res.on('data', function(d) { getProductInfo += d; }); res.on('end', function() { if (( typeof message == 'undefined') && (!( typeof items === 'undefined' || items === null))) { spec.resp.list = items; deferred.resolve(spec); } else { spec.resp.message = message; deferred.reject(spec); } }); }); reqGet.end(); reqGet.on('error', function(e) { console.log(e); deferred.reject(spec); }); return deferred.promise; }).then(function(spec) { spec.resp.status = 'Success'; res.send(spec.resp); }).fail(function(spec) { spec.resp.status = 'Error'; res.send(spec.resp); }); });
我这是个寒冷的问题。 我明白需要检查types和实现。 我认为我们需要为(abcd和xyz)添加一些不同的function,然后可以根据types调用该方法。
请build议好方法。
- React w / SignalR – TypeError:WebSocketClient()不是一个构造函数
- 如何从服务器和客户端的angular度来使用3Scale的`authrep`函数?
- 如何在NodeJs上为RestAPI创build一个干净的体系结构
- 在Nodejs中使用Google API进行服务validation
- 如何向Google Analytics报告API v4进行身份validation
- 我应该如何构build我的数据库和API服务器为基于回合的多人iPhone的棋盘游戏? (考虑nodejs,mongo,沙发等)
- 在nodejs中传递下一个页面令牌之后,无法访问google位置api
- 与正常路线一起使用Swagger Express
- RESTful API是否会返回不同的状态码或令牌过期和未经授权的错误消息?