У меня есть приложение Node.js, которое в настоящее время позволяет пользователю предоставлять Digital Ocean Droplet. Однако сейчас я пытаюсь перейти на IBM Cloud и вместо этого хочу подготовить виртуальный сервер.
У меня проблема в том, что у меня нет опыта работы с API. Digital Ocean имеет свой собственный пакет NPM, выступающий в качестве оболочки для бита API Digital Ocean. Я не могу найти эквивалент для IBM Cloud. Я просматривал документацию VPC API , прошел весь процесс создания виртуального сервера с использованием терминала и успешно подготовил виртуальный сервер.
Теперь,Я пытаюсь заставить эти запросы cURL работать в Node.js. Я начинаю с простого API GET images, чтобы попытаться напечатать доступные изображения. Команда выглядит следующим образом:
curl -X GET "https://eu-gb.iaas.cloud.ibm.com/v1/images?version=2019-10-08&generation=1" \
-H "Authorization: *IAM TOKEN HERE*"
Я прочитал документацию HTTP-узла , и до сих пор я преобразовал эту команду, чтобы она выглядела следующим образом:
const http = require('http')
const options = {
hostname: 'https://eu-gb.iaas.cloud.ibm.com',
port: 80,
path: '/v1/images?version=2019-10-08&generation=1',
method: 'GET',
headers: {
'Authorization': '*IAM TOKEN HERE*'
}
};
const req = http.request(options, (res) => {
console.log(`STATUS: ${res.statusCode}`);
console.log(`HEADERS: ${JSON.stringify(res.headers)}`);
res.on('end', () => {
console.log('No more data in response.');
});
});
req.on('error', (e) => {
console.error(`problem with request: ${e.message}`);
});
req.end();
Однако, когда я запускаю файл JS, я получаю следующую ошибку:
problem with request: getaddrinfo ENOTFOUND https://eu-gb.iaas.cloud.ibm.com https://eu-gb.iaas.cloud.ibm.com:80
Может кто-нибудь объяснить мне ошибку, где я иду не так, и как я могу исправить эту проблему?
Заранее большое спасибо,
G