我有以下代码来检查网站是否正常运行,如果网站在所有其他情况下都返回200或另一个,则返回一个特定的常量。
var request = require('request');
var endpoint = require("@runkit/runkit/json-endpoint/1.0.0");
const options = {
url: 'https://api.commbank.com.au/public/cds-au/v1/banking/products',
headers: {
'x-v': '2'
}
};
const success = {
"schemaVersion": 1,
"label": "API Status",
"message": "Online",
"color": "green"
};
const failure = {
"schemaVersion": 1,
"label": "API Status",
"message": "Offline",
"color": "red"
};
var successString = JSON.stringify(success);
var failureString = JSON.stringify(failure);
function testAPI(cb) {
request(options, cb);
}
exports.endpoint = function(request, response) {
var callback = function(e,r,b) {
if (r.statusCode.toString().localeCompare("200") == 0) {
response.end(successString);
} else {
response.end(failureString);
}
}
testAPI(callback);
}
如果网站返回200,则此代码非常有效,但如果网站不存在,则代码超时并返回:
{
"error": "socket hang up",
"message": "ECONNRESET"
}
例如,如果将URL设置为不存在的域,则会收到此错误。我该如何修复代码,以便在无法访问网站的情况下返回const failure
,我认为response.end(failureString);
可以工作,但不能。