NodeJS 连接时出错拒绝服务器的响应

8hhllhi2  于 2023-03-08  发布在  Node.js
关注(0)|答案(3)|浏览(154)

我从服务器收到错误,错误号为:我的API在我的本地机器上工作得很好。当我托管代码时,我得到了一个连接错误。
如果你点击URL直接你会得到产品http://nodenpm.club:3001/products这里是API的URL,我用来访问与产品http://nodenpm.club:3002/orders的订单,但当我访问此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
        }
    ]
}
ngynwnxp

ngynwnxp1#

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

x4shl7ld

x4shl7ld2#

您没有包含请求的方法。请尝试:

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

ckocjqey3#

应该定义方法请求

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

但是最好使用axios

相关问题