如何将数据从 Heroku 上托管的 Node.js 应用程序发送到托管在完全独立(Cpanel)服务器上的 PHP 文件?

Posted

技术标签:

【中文标题】如何将数据从 Heroku 上托管的 Node.js 应用程序发送到托管在完全独立(Cpanel)服务器上的 PHP 文件?【英文标题】:How can I send data from a Node.js application hosted on Heroku to a PHP file hosted on a completely separate (Cpanel) server? 【发布时间】:2021-05-15 16:32:05 【问题描述】:

在搜索了 30 多分钟后,我似乎无法在任何地方找到这个问题的好答案。我希望这还没有被问到。

所以,我想开发一款在线游戏。这将是一个非常简单的在线游戏(主要用于练习)。我想在 Heroku 上托管这个游戏,我将使用 Node.js 编写游戏代码。现在,我有一个单独的服务器(一个运行 Apache 和 Cpanel 的共享服务器),我想在其中存储游戏的所有永久数据(在 mysql 数据库中)。所以我需要做的是在我的 Apache Web 服务器上使用 php 提供游戏,允许用户在 Apache 服务器上创建帐户/登录帐户(使用也位于那里的 MySQL 数据库),然后我希望他们能够“加入房间”,当他们这样做时,我想将它们发送到在 Heroku 上运行的 Node.js 服务器,并允许该服务器处理与游戏相关的所有事情(通过 WebSockets)。现在,在他们完成游戏后,我想将他们的分数和其他一些有关他们的相关数据保存到我的 Apache 服务器上的 MySQL 数据库中......有没有办法可以做到这一点?有什么方法可以将数据从运行在 Heroku 上的 Node.js 服务器发送到我的 Apache 服务器上的 PHP 文件? (例如,handlepostgame.php 或类似的东西)

我希望这是一个写得很清楚的问题,并且您能够轻松理解我在问什么。如果没有,请告诉我,我会尽量让它更清楚!提前致谢。

【问题讨论】:

there any means by which I can send data from a Node.js server running on Heroku to a PHP file on my Apache server...是的,让它发送一个HTTP请求 哦,好吧,我会调查的!我似乎在互联网上找不到任何地方展示如何使用 Node.js 做到这一点,但现在我确切地知道要寻找什么,我会花更多时间去搜索,看看我能找到什么。非常感谢。 :) 【参考方案1】:

感谢@ADyson 为我指明了正确的方向!

所以,我找到了适合我需要的答案!这是我的“requesttophp.js”文件:(Node.js)

var http = require('http');

console.log("running");

var query = "something=cookie";
var queryLength = query.length;

var options = 
  host: 'www.mydomain.com',
  path: '/path/to/fromnodejs.php',
  method: 'POST',
  headers:
    'Content-Type': 'application/x-www-form-urlencoded',
    'Content-Length': queryLength
  
;

callback = function(response) 
  var str = ''
  response.on('data', function (chunk) 
    str += chunk;
  );

  response.on('end', function () 
    console.log(str);
  );


var req = http.request(options, callback);
req.write(query);
req.end();

respondtonodejs.php: (PHP)

<?php

echo "it worked\n";
echo $_POST["something"];

?>

结果是

running
it worked
cookie

这正是我想要的! :) 谢谢。

【讨论】:

以上是关于如何将数据从 Heroku 上托管的 Node.js 应用程序发送到托管在完全独立(Cpanel)服务器上的 PHP 文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何解决 Heroku 上托管的 django 项目中的迁移问题?

如何将客户端的正确 IP 地址获取到 Heroku 上托管的 Node socket.io 应用程序中?

python脚本无法在heroku上托管的其他python脚本中调用fn

如何在 Heroku 上托管的 Ruby/Sinatra 应用程序中设置 HTTP 标头?

Heroku 上托管的应用程序无法加载网页

我需要为 Heroku 上托管的机器人实现分片吗?