IBM-使用带有Node.js的API创建VPC

IBM-使用带有Node.js的API创建VPC,node.js,http,ibm-cloud,ibm-cloud-infrastructure,Node.js,Http,Ibm Cloud,Ibm Cloud Infrastructure,我有一个Node.js应用程序,目前允许用户提供数字海洋液滴。然而,我现在正试图迁移到IBMCloud,而不是提供一个虚拟服务器 我遇到的问题是,我没有使用API的经验。Digital Ocean有自己的NPM包,充当Digital Ocean API位的包装器。我找不到IBM Cloud的等效程序。我已经查看了,并且已经完成了使用终端创建虚拟服务器的整个过程,并且成功地配置了虚拟服务器 现在,我试图让这些cURL请求在Node.js中工作。我从简单的GetImagesAPI开始,尝试打印可用的

我有一个Node.js应用程序,目前允许用户提供数字海洋液滴。然而,我现在正试图迁移到IBMCloud,而不是提供一个虚拟服务器

我遇到的问题是,我没有使用API的经验。Digital Ocean有自己的NPM包,充当Digital Ocean API位的包装器。我找不到IBM Cloud的等效程序。我已经查看了,并且已经完成了使用终端创建虚拟服务器的整个过程,并且成功地配置了虚拟服务器

现在,我试图让这些cURL请求在Node.js中工作。我从简单的GetImagesAPI开始,尝试打印可用的图像。该命令如下所示:

curl -X GET "https://eu-gb.iaas.cloud.ibm.com/v1/images?version=2019-10-08&generation=1" \
 -H "Authorization: *IAM TOKEN HERE*"
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();
我已经阅读了,到目前为止,我已将此命令转换为如下所示:

curl -X GET "https://eu-gb.iaas.cloud.ibm.com/v1/images?version=2019-10-08&generation=1" \
 -H "Authorization: *IAM TOKEN HERE*"
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

尝试以下方法:

const https = require('https');
const options = {
    hostname: 'eu-gb.iaas.cloud.ibm.com',
    port:  443,
    path: '/v1/images?version=2019-10-08&generation=1',
    method: 'GET',
    headers: {
        'Authorization': 'Bearer <IAM TOKEN HERE>'
    }
};
const req = https.request(options, (res) => {
    console.log('statusCode:', res.statusCode);
    console.log('headers:', res.headers);

    res.on('data', (d) => {
        process.stdout.write(d);
    });
});

req.on('error', (e) => {
    console.error(e);
});
req.end();
consthttps=require('https');
常量选项={
主机名:“eu-gb.iaas.cloud.ibm.com”,
港口:443,
路径:'/v1/images?版本=2019-10-08&generation=1',
方法:“GET”,
标题:{
“授权”:“持票人”
}
};
const req=https.request(选项,(res)=>{
console.log('statusCode:',res.statusCode);
log('headers:',res.headers);
res.on('数据',(d)=>{
进程.stdout.write(d);
});
});
请求开启('错误',(e)=>{
控制台错误(e);
});
请求结束();

协议
http://
不应包含在主机字段中,同时,建议使用https。

谢谢!我应该注意到这一点