Я использую node.js (и discord.js) для создания диска разногласий.
Я использую запрос GET с модулем запроса npm.Код работает, как и ожидалось, когда пользователь вводит "! Cat", он получает данные из https://aws.random.cat/meow и публикует картинку кота ОДНАКО иногда сервер выдаст ошибку 403, которая приводит к HTML-странице вместо JSON и вылетает из-за бота из-зана неожиданный токен.
Я ищу способ обнаружить HTML-страницу и остановить код / опубликовать сообщение об ошибке, либо обнаружив, что конечной точкой является HTML вместо JSON, либо содержимое данных, отправленных обратноэто будет:
- JSON =
{ file: 'https://catlink.jpg' }
- HTML 403 =
<!DOCTYPE HTML PUBLIC...
IMG1: Ошибка - ответ HTML-страницы, IMG2: ожидаемые ответы 1 на запрос
Мой текущий кодовый блок выглядит следующим образом:
//RANDOM CATS
if(command === "cat" || command === "meow"){
//Connection options
var catoptions = {
url: "https://aws.random.cat/meow",
headers: {
'Content-Type': 'application/json',
'Accept': 'application.json'
}
};`
//Send the request
let request = require("request");
request(catoptions, function(err, response, body){
if(err){
console.log("error code #002");
} else {
//Receive the body of the JSON
var catresult = JSON.stringify(body); //stringify incase page returns HTML 403 error - Will recieve "<!DOCTYPE HTML PUBLIC..." as first bit of data
console.log(catresult) //Send to log to see if JSON "cat pic" data is returned or the HTML 403 error
let meowdata = JSON.parse(body);
//Responbse body
let meowpic = meowdata.file;
console.log(meowpic); //Send link to console
message.channel.send(meowpic); //Send link to discord channel with discord.js
}
});
} //END OF RANDOM CATS