尝试连接到API端点会导致无法连接到localhost

时间:2018-03-17 22:03:03

标签: node.js rest express axios postgresql-9.3

我有一个应用程序,当点击一个按钮时,它会从postgres表中检索一个随机语句:

getRandomQuote() {    

 axios.get('http://localhost:3100/quote').then(response => {

    console.log('1111111', response);

    this.setState( 
      {
        quote: response.data[0].quote_text,
        quoteAuthor: response.data[0].author,
        opacityZero: false
      } );
      setTimeout(_=>this.setState( {opacityZero: true} ),100)
  })
}

但是,当我在运行应用程序时单击按钮时,我会收到结果:

GET http://localhost:3100/quote net::ERR_CONNECTION_REFUSED

一起
Uncaught (in promise) Error: Network Error
at createError (createError.js:16)
at XMLHttpRequest.handleError (xhr.js:87)

尝试在Chrome浏览器中转到http://localhost:3100/quote,这会让我感到“无法访问此网站 localhost拒绝连接。 ERR_CONNECTION_REFUSED“。就我所知,暂时我似乎没有理由相信这个问题是我的快速服务器或数据库的结果,因为主要问题似乎是它无法连接到localhost端点。

server.js

var express = require('express');
var app = express();
var http = require('http');
var massive = require('massive');
const cors = require('cors');

var connectionString = 'postgres://myname@localhost/quotedatabase'; 
console.log('getting here');
app.use(cors());
massive(connectionString).then(db => {
  app.set('db', db);
  http.createServer(app).listen(3100);
  console.log('getting here two');
}) 

var db = app.get('db');

app.get('/', function(req, res){
    res.send('a little short yeah? ask for a quote');
});  

app.get('/quote', function(req, res) {
  var db = app.get('db');

  db.getRandomQuote().then(randomQuote => {
      console.log(randomQuote);
      res.send(randomQuote);
  }).catch(console.log)
})

2 个答案:

答案 0 :(得分:0)

这意味着您无法连接到您的服务器。实际上,您需要使用app.listen(port)

使服务器侦听端口

http://expressjs.com/fr/4x/api.html#app.listen

答案 1 :(得分:0)

我应该在我的api目录中运行nodemon server.js而不是应用程序的目录根目录。