在节点js中进行google compute engine api调用后,将响应发送回客户端

时间:2018-03-05 01:45:42

标签: node.js google-cloud-platform google-compute-engine kubernetes-container

我正在尝试使用谷歌云Kubernetes API为节点js从谷歌云中获取Kubernetes群集详细信息。

以下是我在google文档中找到的示例。

var google = require('googleapis');
var container = google.container('v1');

authorize(function(authClient) {
  var request = {
     projectId: 'my-project-id',  
     zone: 'my-zone',  
     clusterId: 'my-cluster-id',  
     auth: authClient,
  };

  container.projects.zones.clusters.get(request, function(err, response){
    if (err) {
       console.error(err);
    return;
  }

// TODO: Change code below to process the `response` object and send the detail back to client.

  console.log(JSON.stringify(response, null, 2));
  });
});

function authorize(callback) {
   google.auth.getApplicationDefault(function(err, authClient) {
     if (err) {
       console.error('authentication failed: ', err);
       return;
   }
   if (authClient.createScopedRequired && authClient.createScopedRequired()) {
       var scopes = ['https://www.googleapis.com/auth/cloud-platform'];
       authClient = authClient.createScoped(scopes);
   }
   callback(authClient);
  });
}

由于google get API是异步功能,如何将API的响应返回给客户端。

1 个答案:

答案 0 :(得分:0)

问题是你想对数据做些什么?这不是API异步与否的问题,这段代码应该在控制台中返回与此请求相同的JSON:

GET https://container.googleapis.com/v1beta1/projects/[PROJECT ID]/locations/[ZONE]/clusters/[CLUSTER NAME]

函数和回调应该注意它是异步的。