【问题标题】:AWS requests using nodeJS使用 nodeJS 的 AWS 请求
【发布时间】:2017-09-14 03:04:20
【问题描述】:

我有一个带有按钮的网页。单击按钮时,它会调用一个 nodejs 方法,该方法返回我的 AWS 账户上我的 EC2 实例的状态。为了托管网页,我使用了 nodeJS。对于我的 aws 帐户和网页之间的连接,我使用了 AWS NodeJS sdk。

我得到的响应(EC2 的状态)是 json 格式。以下是响应-

{ InstanceStatuses:
   [ { InstanceId: 'i-67441a9c',
       AvailabilityZone: 'us-east-1c',
       Events: [],
       InstanceState: [Object],
       SystemStatus: [Object],
       InstanceStatus: [Object] },
     { InstanceId: 'i-feac4e0f',
       AvailabilityZone: 'us-east-1b',
       Events: [],
       InstanceState: [Object],
       SystemStatus: [Object],
       InstanceStatus: [Object] } ] }

C:\NodeTest>node DescribeInstances.js
{ InstanceStatuses:
   [ { InstanceId: 'i-67441a9c',
       AvailabilityZone: 'us-east-1c',
       Events: [],
       InstanceState: [Object],
       SystemStatus: [Object],
       InstanceStatus: [Object] },
     { InstanceId: 'i-feac4e0f',
       AvailabilityZone: 'us-east-1b',
       Events: [],
       InstanceState: [Object],
       SystemStatus: [Object],
       InstanceStatus: [Object] } ] }

此响应来自命令提示符。现在我希望这个响应显示在网页上。我该怎么做。或者我如何使用 ec2 实例的响应来采取进一步的行动,比如如果一个 ec2 正在运行关闭它。任何帮助,将不胜感激。我是 NodeJs 的新手。提前致谢。

【问题讨论】:

    标签: json node.js amazon-web-services amazon-ec2 amazon-s3


    【解决方案1】:

    您在此处发布的是“后端代码”,即在您的服务器后面运行且您的用户永远不会看到的代码。

    您需要在此系统中添加“前端代码”。 Android 应用、Windows 应用和网站都是“前端”的示例。

    用于提供 Web 前端的常用 nodejs 库有:

    对于这个答案的其余部分,我将假设您选择 express,因为在我看来,它是初学者最容易理解的。

    一个简单的网络服务器

    添加网页的最简单示例如下所示。

    var express = require( 'express' )
    var app = express()
    var myAwsFetcher = require( './aws-fetcher' )
    
    app.get( '/', function( req, res ){
      myAwsFetcher( function( err, data ){
        res.send( data )
      })
    })
    
    app.listen( 8888, function(){
      console.log( 'App is listening on localhost:8888' )
    })
    

    这样,当您运行node index.js 并转到http://localhost:8888 时,您应该会在浏览器中看到:

    { InstanceStatuses:
       [ { InstanceId: 'i-67441a9c',
           AvailabilityZone: 'us-east-1c',
           Events: [],
           InstanceState: [Object],
           SystemStatus: [Object],
           InstanceStatus: [Object] },
         { InstanceId: 'i-feac4e0f',
           AvailabilityZone: 'us-east-1b',
           Events: [],
           InstanceState: [Object],
           SystemStatus: [Object],
           InstanceStatus: [Object] } ] }
    

    【讨论】:

      【解决方案2】:

      要显示您可以定义的响应:

      <body>
      <textarea readonly id= "textarea" style="width:400px; height:800px"></textarea>
      </body>
      

      并替换:console.log(response); 连:document.getElementById('textarea').innerHTML = response;

      【讨论】:

        猜你喜欢
        • 2016-02-26
        • 1970-01-01
        • 1970-01-01
        • 2019-09-13
        • 1970-01-01
        • 2017-07-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多