如何从我的node.js VM实例在浏览器中查看我的JSON数据?

时间:2015-06-23 23:34:12

标签: javascript json node.js google-compute-engine postman

我目前有谷歌云计算引擎运行nodejs连接到谷歌云SQL女巫从MySQL工作台获取数据。这是我用' node'

运行的server.js文件
var gcloud = require("gcloud");
var express = require("express");
var http = require('http');
var mysql = require("mysql");
var connection = mysql.createConnection({
  port: "3306",
  host : "173.194.87.72",
  user : "root",
  password : "****",
  database : "scripto_5_k"
});
var app = express();
/* Connection to Database */
connection.connect(function(error){
  if(error)
  {
    console.log("Problem with MySQL "+error);
  }
  else
  {
    console.log("Connected with Database ");
  }
});

app.set('port', process.env.PORT || 3000);

app.get('/',function(req,res){
  res.send('hello index');
});

app.get('/load',function(req,res){
  console.log("/load hit");
  connection.query("SELECT * from user",function(err,rows){
    if(err)
    {
      console.log("Problem with MySQL"+err);
    }
    else
    {
      res.end(JSON.stringify(rows));
    }
  });
});
/*start the server */
app.listen(3000,function(){
  console.log("its started on PORT %s", app.settings.port);
});

这应该占用用户表中的所有数据,并在使用/ load时将其放入JSON。但我不能让Postman显示数据。这是我一直在使用的地址

http://130.211.90.249:3000/load

地址来自Google云端口是我在server.js文件中设置的端口,而/ load应该使用我上面写的函数。

为什么我没有看到这个输入的结果?我正在使用节点server.js'运行服务器。在我的VM实例上,它表示我已成功连接。

非常感谢任何帮助。

修改1

这是我运行server.js时我的VM的样子

my_user_name@nodejs-2:~$ node server.js
its started on PORT 3000
Connected with Database 

没有错误,但在Postman我得到了#34;无法得到任何回复"当我输入上面给出的地址时。

修改2

我是否需要在运行的server.js文件中创建一个http服务器,以便Postman中的请求可以访问JSON对象?

编辑3

如果我按照谷歌云虚拟机的IP地址,它会转到Bitnami的默认页面,但会告诉我节点js正在云中运行。我是否需要删除此默认页面,或者只是在服务器运行时离开?

这是一个链接http://130.211.90.249/

1 个答案:

答案 0 :(得分:1)

由于应用程序正在您的代码中侦听端口3000,因此您需要创建防火墙规则以使该端口可从外部使用。

从该项目的开发者控制台,转到网络并查看默认网络的详细信息。创建规则以允许端口3000上的流量。