IBM-使用带有Node.js的API创建VPC
我有一个Node.js应用程序,目前允许用户提供数字海洋液滴。然而,我现在正试图迁移到IBMCloud,而不是提供一个虚拟服务器 我遇到的问题是,我没有使用API的经验。Digital Ocean有自己的NPM包,充当Digital Ocean API位的包装器。我找不到IBM Cloud的等效程序。我已经查看了,并且已经完成了使用终端创建虚拟服务器的整个过程,并且成功地配置了虚拟服务器 现在,我试图让这些cURL请求在Node.js中工作。我从简单的GetImagesAPI开始,尝试打印可用的图像。该命令如下所示: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开始,尝试打印可用的
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。谢谢!我应该注意到这一点