2

在某一时刻,我只想向正在运行的服务器POST发出请求railslocalhost:3000

如果像postmanon这样的使用,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 }

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

4

2 回答 2

2

我终于做到了!

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

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

于 2017-02-10T10:29:53.713 回答
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')
        }
    });

希望它有效。

于 2017-02-09T17:03:17.430 回答