如何将数据从 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