用 node.js/javascript 连接 PHP
Posted
技术标签:
【中文标题】用 node.js/javascript 连接 PHP【英文标题】:Connecting PHP with node.js/javascript 【发布时间】:2018-05-01 01:43:49 【问题描述】:我必须在我的网站上实现基于 php 的背包问题算法。我以为我会用 javascript 制作它,但我遇到了问题。我正在从 mysql 中获取需要用于该算法的数据,而 JavaScript 无法做到这一点。所以我设法通过从 Node.js 添加连接器来做到这一点。该算法在用户给出一些输入时起作用。我用 html 制作了一个表单,只是为了获取输入并将其用作函数中的参数。现在的问题是整个网站都是用 PHP 编写的,我无法用 JavaScript 连接它,因为我连接到数据库的 node.js 部分。我想问一下有没有办法使用这个。
总结并说清楚: 网站是用 PHP 编写的,我想制作一个简单的 HTML 表单来从 JavaScript 文件中获取用户的输入到参数函数中。问题是我的 JavaScript 文件需要 MySQL 数据才能运行,所以它变成了 node.js。据我所知,在基于 PHP 的网络服务器上运行 node.js 并不容易。是否可以将 PHP 与 JavaScript 结合使用,以便 PHP 将数据从 MySQL 加载到 JavaScript 中?你们有什么建议?
【问题讨论】:
【参考方案1】:“我正在从 MySQL 中获取我需要用于该算法的数据, 而 JavaScript 无法做到这一点”。
从浏览器中的 JavaScript 到服务器上的 PHP 脚本的 AJAX 请求是解决此问题的直接方法。
总结这个过程:在请求中,JavaScript 代码发送一些关于它想要什么的相关参数,PHP 接收该数据,查询数据库,并在 AJAX 请求的响应中返回结果。 JavaScript 接收此响应,读取数据并继续处理。
Node.js 只是另一个服务器端脚本框架,类似于 PHP。不要让它使用 JavaScript 作为其编程语言这一事实让您感到困惑。如果您现有的服务器端解决方案是用 PHP 编写的,那么在这种情况下绝对不需要使用 Node。
基于浏览器的 JS 和 PHP 可以使用普通的 HTTP 请求非常愉快地相互通信(可能通过 AJAX 发起,因此您可以避免页面刷新等)。这就是网络之美。客户端和服务器可以使用完全不同的编程语言和不同的操作系统,这根本没有区别,因为它们只是使用双方都可以理解的通用协议(HTTP)交换数据。
【讨论】:
【参考方案2】:在你的 php 文件中,注入你的结果,像这样。
<?php
// function that handle form data and returns results from mysql
// let's call it my_data_function
$results = my_data_function();
?>
<script type="text/javascript">
var mysql_data = <?php echo json_enode($results)?>
my_js_function(mysql_data)
</script>
这是老派的方式,然后是 ajax,现在我们正在讨论 REST API。 希望这会有所帮助。 如果您需要更多帮助,请告诉我。
【讨论】:
以上是关于用 node.js/javascript 连接 PHP的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Node.js/JavaScript 合并两个按键值匹配的数组值
检测代码中的 node.js/javascript 内存泄漏
用于测试点是不是在 geojson 多多边形中的 Node.js/Javascript 库