如何从node.js虚拟机实例在浏览器中查看JSON数据

How do I view my JSON data in a browser from my node.js VM Instance?

本文关键字:浏览器 数据 JSON 实例 node js 虚拟机      更新时间:2023-09-26

我目前有一个运行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);
});

当我使用/加载时,这应该获取用户表中的所有数据并将其放入JSON。但我无法让Postman显示数据。这是我一直在使用的地址

http://130.211.90.249:3000/load

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

为什么我没有看到这个输入的结果?我在我的虚拟机实例上运行带有"node-server.js"的服务器,它显示我已成功连接。

非常感谢您的帮助。

编辑1

当我运行server.js 时,我的虚拟机就是这样的

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

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

编辑2

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

编辑3

如果我遵循我的谷歌云虚拟机的ip地址,它会将我带到Bitnami的默认页面,但告诉我nodejs正在云中运行。我需要删除这个默认页面吗?或者在服务器运行时离开可以吗?

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

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

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