来自服务器的连接econnrefused响应中的错误

时间:2019-08-24 18:24:36

标签: node.js express

我从服务器收到错误,错误号为:ECONNREFUSED 我的API在本地计算机上运行良好。托管代码时,出现连接错误。

如果直接点击URL,您将获得产品http://nodenpm.club:3001/products 这是我用来访问产品http://nodenpm.club:3002/orders的订单的API URL 但是当我使用请求访问此URL时,出现以下错误

{
    "status": false,
    "error": {
        "errno": "ECONNREFUSED",
        "code": "ECONNREFUSED",
        "syscall": "connect",
        "address": "172.17.0.3",
        "port": 3001
    }
}

我正在使用Ubuntu服务器与docker托管。我也尝试了代理请求,但不起作用。以下是我的要求代码。

const express = require("express");
const request = require('request');
const app = express();

app.get("/orders", (req, res) => {
    var options = {
        url: 'http://nodenpm.club:3001/products',
        headers: { 'Content-Type': 'application/json' }
    };
    request(options, (error, response, body) => {
        if (!error) {
            res.status(200).json({
                status: true,
                body: body
            });
        }
    })
});

app.listen(3002, () => {
    console.log('order services listening on http://nodenpm.club:3002');
});

我期望的输出低于

{
    "status": true,
    "products": [
        {
            "_id": "5d5f84afdb78bd0b10e38879",
            "name": "mobile",
            "price": 10000
        }
    ]
}

2 个答案:

答案 0 :(得分:0)

我认为您必须将URL放入一个对象中,例如: {url:"http://nodenpm.club:3001/products"}

答案 1 :(得分:0)

您不包括请求的方法。试试:

request.get(options, (error, response, body) => {
    if (!error) {
        res.status(200).json({
            status: true,
            body: body
        });
    }
})