最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

通过cURL与NodeJS Express URL的连接失败

运维笔记admin9浏览0评论

通过cURL与NodeJS Express URL的连接失败

通过cURL与NodeJS Express URL的连接失败

我有一个用OVH托管的VPS用于NodeJS脚本。 VPS在端口3000上运行Express NodeJS脚本以返回JSON。我有一个托管GoDaddy网站的Web服务器。 Web服务器托管我的网站。

我要求网站访问NodeJS脚本并检索返回的JSON数据。

我知道NodeJS脚本是有效的,因为我可以将URL输入到我的Web浏览器中,并返回JSON内容并在浏览器中显示。我还在本地托管了我的网站,网站运行完美。 PHP脚本成功检索NodeJS JSON数据,不会发生错误。

然而,当我将我的网站上传到GoDaddy网络服务器时;我的PHP脚本无法连接到OVH VPS,当转储curl_error($ch)时,我收到错误:Failed to connect to {vps ip} port 3000: Connection refused

我已经尝试更改URL前缀“https://”,“http://”。我已经尝试过PHP的file_get_contents(),但是出现了类似的问题。

Express服务器运行:

app.use(cors());
app.get("/server/:id", async (req, res, next) => {
    let server = req.params.id;
    ...
    return res.json({ "foo": "bar" });
});

app.listen(3000, () => {
    console.log(`>> API Connecting          >> 3000`);
});

我的PHP脚本尝试通过以下方式访问上述内容:

$ch = curl_init("http://{OVH VPS IP}/server/12345678");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$result = curl_exec($ch);
curl_close($ch);
$response = json_decode($result, true);

我希望$ response是返回$ result的数组,但实际上是$result == false$response == NULL

任何帮助都非常感谢!

回答如下:

尝试指定以下函数的第二个参数(IP地址),如下所示:

app.listen(3000, '0.0.0.0', () => {
    console.log(`>> API Connecting          >> 3000`);
});

'0.0.0.0'在所有接口上监听,

当您未指定第二个参数时,“127.0.0.1”可能是默认值

发布评论

评论列表(0)

  1. 暂无评论