以下是getresponse.js
var https = require('https');
function httpGet(callback){
var body = "";
var issueDesc = [];
var options = {
hostname:'<hostname>'
port:443,
path:'/rest/api/2/search?jql=project=X',
method:'GET',
headers: {
'Authorization':'Basic '+ new Buffer("xxxxx"+':'+"xxxxxx").toString('base64'),
'Content-Type':'application/json',
}
};
https.get(options, function(res, callback) {
res.on('data', function(data) {
body += data;
});
res.on('end', function(callback) {
Response = JSON.parse(body);
var i=Response.total;
for(j=0;j<i;j++){
issueDesc.push(Response.issues[j].key +": "+Response.issues[j].fields.summary +"\n");
}
issueDesc = issueDesc.join("");
callback(issueDesc);
});
});
};
module.exports.httpGet = httpGet;
以下是我的app.js代码(控制器文件)
var getissue = require('./getresponse.js');
getissue.httpGet(function(response) {
console.log(response);
// ....
});
我想访问issueDesc
中的app.js
,但我收到的错误为callback is not a function
。
我是否必须通过issueDesc
将module.exports
作为全局变量发送?
答案 0 :(得分:2)
getresponse.js文件
module.exports = {
httpGet: () => {
var https = require('https');
return new Promise((resolve, reject) => {
var body = "";
var issueDesc = [];
var options = {
hostname: '<hostname>'
port: 443,
path: '/rest/api/2/search?jql=project=X',
method: 'GET',
headers: {
'Authorization': 'Basic ' + new Buffer("xxxxx" + ':' + "xxxxxx").toString('base64'),
'Content-Type': 'application/json',
}
};
https.get(options, function (res) {
res.on('data', function (data) {
body += data;
});
res.on('end', function () {
var response = JSON.parse(body);
var i = response.total;
for (j = 0; j < i; j++) {
issueDesc.push(response.issues[j].key + ": " + response.issues[j].fields.summary + "\n");
}
issueDesc = issueDesc.join("");
resolve(issueDesc);
});
res.on('error', (err) => {
reject(err);
})
});
});
}
}
app.js
var getissue = require('./getresponse.js');
getissue.httpGet()
.then(response => {
console.log('your response', response);
}).catch(err => {
console.error('error', err);
});
您将在&#39;然后&#39;中得到回复。块。