【问题标题】:(Switching from PHP to NODE) - How to communicate with front-end?(从 PHP 切换到 NODE) - 如何与前端通信?
【发布时间】:2020-08-05 14:37:55
【问题描述】:

我想从 PHP 切换到 NODE。我是一名业余程序员,使用 JavaScript(JQuery)、PHP 和 mysql 做了一些网站。

我习惯于使用 $.post()、$.get()、fetch()、getJSON() 等来发送/接收来自我的 php 脚本的数据,这些脚本从 mysql 上传或读取数据数据库。

我的问题来了。当我使用 NODE 脚本并尝试与它们通信时,我只取回代码而不是数据。使用 node 命令运行时,脚本在控制台中运行良好。

我猜 PHP 总是在我的 Apache 中运行,但 NODE 不是?!

我的问题:使用 NODE 而不是 PHP 时,如何与前端 后端进行通信?感谢您提前回答。

【问题讨论】:

  • 这个问题实在是太笼统了,你还是自己去找一些初学者教程吧,比如sitepoint.com/build-a-simple-web-server-with-node-js
  • 你需要在node.js中启动一个http服务器,你也可以使用构建在http模块之上的express服务器。在 youtube 上观看关于 node.js 的教程,几乎所有关于 node 的教程也将包括 express server
  • 所以我的 apache 不会这样做?
  • 不,您需要一个编译器来编译 javascript 文件并将结果提供给浏览器。 node js 为此使用 Chrome 的 V8 JavaScript 引擎。我没有 apache 有任何 javascript 引擎

标签: php node.js


【解决方案1】:

正如 cmets 所说,nodejs 取代了 apache。如果你的 nodejs 程序被称为server.js,你需要运行它来让你的服务器启动并运行。 node server.

如果您还在同一端口上运行 apache,nodejs 将无法启动。它会抱怨该端口已被使用。但是你可能看不到这个问题,因为各种 nodejs 示例程序使用的端口号如 3000,而 apache 通常使用端口 80。

从 apache 切换到 node 还涉及转换您对 Web 服务器如何工作的思考方式。 apache 是一个文件服务器,带有一个补丁(因此得名),用于运行 php 脚本,而不仅仅是发送它们的源代码。另一方面,nodejs 是一个非文件服务器。如果您希望它为静态文件提供服务,则必须在“静态”中间件代码中构建。

Apache 的核心是http://example.com/a/b/c.html 在您的服务器文件系统中查找位于<<root>>/a/b/c.html 的文件。 Nodejs 本质上不是文件服务器。其中,/a/b/c.html 是一个称为路由的文本字符串。只有当您将该路由绑定到具有“静态”中间件(或其他代码)的文件系统时,它才会从文件系统传递文件。

您的浏览器代码应该可以正常工作。您可能需要将浏览器代码中的路由名称从 whatever.php 更改为 whatever,或者编写 nodejs 代码以接受 .php 的内容。

【讨论】:

猜你喜欢
  • 2016-03-31
  • 1970-01-01
  • 2012-12-14
  • 2018-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-03
  • 2012-06-03
相关资源
最近更新 更多