nodeJS请求POST到localhost:3000 ECONNREFUSED

时间:2017-02-09 16:57:55

标签: node.js express post request econnrefused

有一次,我只想向POST

上运行的rails服务器发出localhost:3000个请求

如果在postman上使用cUrl,我可以ping我的API

但是哇,我的节点应用程序我想这样做:

    var req_body = {
       'my_id': id,
        'dataTable': data }


    var options = {
       method:   'POST',
       url:      config.get('api_url') + 'end_tracking',
       json:     true,
       body:     req_body
      }
      //  config.get('api_url') return http://localhost:3000/

      request(options, function (error, response, body) {
                console.log(error)
    ... }

这就是我得到的:

{ Error: connect ECONNREFUSED 127.0.0.1:3000
at Object.exports._errnoException (util.js:896:11)
at exports._exceptionWithHostPort (util.js:919:20)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1073:14)
code: 'ECONNREFUSED',
errno: 'ECONNREFUSED',
syscall: 'connect',
address: '127.0.0.1',
port: 3000 }

正如我所说,如果我直接向邮递员提出这个请求,一切正常!

2 个答案:

答案 0 :(得分:2)

我终于做到了!

由于未知原因,使用localhost:3000启动的rails s访问在我的节点服务器上根本不起作用

但是当我使用rails s -b 0.0.0.0启动rails服务器时我工作了!

答案 1 :(得分:0)

我是怎么做到的,只是使用相同的结构,我希望它适合你

request({
        url: url, //URL to hit
        method: 'post',
        headers: headers,
        timeout: 10000,
        body: JSON.stringify(body)
    }, function (error, result, body) {
        if (error) {
           console.log(error);
        } else if (result.statusCode == 500) {
            console.log('not found');
        } else {
            console.log('success')
        }
    });
希望它有效。