Connection_refused 尝试使用 MySQL 和 node.js 时。使用 cmd 时它确实有效

Connection_refused when trying to use MySQL and node.js. When using cmd it does work

我创建了一个 server.js 文件,如下所示。

var express = require('express'),
app = express(),
port = process.env.PORT || 3000;
app.listen(port);
console.log('todo list RESTful API server started on: ' + port)

var mysql = require('mysql');

var con = mysql.createConnection({
  host: "localhost",
  user: "**",
  password: "**",
  database: "test"
});
app.get('/nodeapi/getimg',function(req,res){

    con.connect(function(err) {
        if (err) throw err;
        con.query("SELECT * FROM images", function (err, result, fields) {
          if (err) throw err;
          console.log(result[1].image);;
        });
      })})

当我在命令终端中 运行 这个文件时,我得到了正确的结果。

当我为我的离子应用程序创建这样的 http.get 函数时:

getimg(){ 
  var url = 'http://localhost:3000/nodeapi/getimg';
  this.http.get(url).subscribe(responseData => console.log(responseData));}

我收到一条错误消息 net::ERR_CONNECTION_REFUSED。我到处都看过,但似乎找不到。我正在为数据库使用 phpmyadmin。任何人都请如此友好地向我解释我做错了什么。

试试这个例子。此外,您是否希望从您的查询中获得不止一个结果?如果不是,您将希望使用 result[0] 而不是 1 来获得第一个(也许是唯一的)结果(位于索引 0)。

var express = require('express');
var cors = require('cors');
var mysql = require('mysql');
var port = process.env.PORT || 3000;

var app = express();
app.use(cors());
app.options('*', cors());

var con = mysql.createConnection({
  host: "localhost",
  user: "**",
  password: "**",
  database: "test"
});

app.get('/nodeapi/getimg', function(req, res) {
  con.connect(function(err) {
    if(err) throw err;
    con.query("SELECT * FROM images", function(err, result, fields) {
      if(err) throw err;
      console.log(result[1].image);
      res.send(result[1].image); // send the value back to the caller.
    });
  })
})

app.listen(port, function() {
  console.log('CORS-enabled web server listening on port 80')
})