Javascript Nodejs+;Q承诺+;基于url类型的方法返回
我使用NodeJS作为后端,也使用QPromise包 问题:我正在尝试获取第三方产品的详细信息。 1.www.abcd.com 2。www.xyz.com-我在后端处理此方法 可能的url:Javascript Nodejs+;Q承诺+;基于url类型的方法返回,javascript,node.js,api,url,q,Javascript,Node.js,Api,Url,Q,我使用NodeJS作为后端,也使用QPromise包 问题:我正在尝试获取第三方产品的详细信息。 1.www.abcd.com 2。www.xyz.com-我在后端处理此方法 可能的url: localhost:8080/search?type=“abcd” localhost:8080/search?type=“xyz” 本地主机:8080/搜索 如果上述URL类型为abcd则表示需要搜索不同的第三方(www.abcd.com)http URL 如果上面的URL类型是xyz意味着需要搜索其他不
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);
});
});