我了解到php和node.js都是服务器端脚本。
我很难理解node.js与在网络浏览器上运行javascript之间的联系。那么,我们不能在Web浏览器上使用javascript访问文件和数据库吗?服务器端脚本和客户端脚本如何连接(或者我们如何连接它们)?还是我应该将它们视为完全不同的东西?
另一个令人困惑的事实是,我了解到可以使用html文件中的php访问数据库和文件,但是node.js呢?
提前谢谢!
答案 0 :(得分:3)
我很难理解node.js与在网络浏览器上运行javascript之间的联系。
没有一个。
JavaScript只是一种编程语言。您在其中编写软件。您可以在不同的地方运行该软件。该软件的功能取决于您在何处运行。
我可以编写一些JavaScript来打开和关闭房屋中的灯。如果我没有可以让我做到的硬件,那我就不会。
可以编写在浏览器中运行的JavaScript来完成浏览器使之可行的事情。
可以编写运行在Node.js中的JavaScript来完成Node.js可以实现的任务。
服务器端脚本和客户端端脚本如何连接(或者我们如何连接它们)?
在浏览器中运行的JavaScript可以向HTTP服务器发出HTTP请求(并处理来自HTTP服务器的响应)。
在Node.js中运行的JavaScript可以是HTTP服务器。
另一个令人困惑的事实是,我了解到可以使用html文件中的php访问数据库和文件,但是node.js呢?
不,你不能。
如果通过Web服务器运行PHP,则PHP将自动生成HTTP响应标头,以表示它正在输出HTML(您可以覆盖它)。
在PHP语言中,<?php ... ?>
之外的代码将直接流到输出中。
这意味着您可以在PHP程序中键入HTML文档,但是可以在<?php ... ?>
之外键入,并且看起来HTML文档中包含PHP。确实,这是一个生成HTML文档的PHP程序。
JavaScript不能那样工作。它没有“ Real JavaScript模式”(例如<?js ?>
)和“直接流至输出模式”。
您可以使用很多模板引擎,包括EJS(可将JS嵌入模板中)。我本人倾向于修女。
答案 1 :(得分:0)
我建议您阅读一些有关客户端技术和服务器端技术之间差异的文章。这是对What are the differences between server-side and client-side programming?
基础知识的很好解释我认为您在考虑网站开发方面的问题。
Node.js允许运行javascript服务器端。为了向客户端(例如,您的浏览器)公开数据库和文件,您需要在node.js应用程序中创建一个连接。您还可以提供文件并将数据公开给浏览器,例如express.js。
为了在Web应用程序上显示数据,您可以呈现html服务器端,也可以通过javascript在客户端应用程序上发出ajax / http请求。
例如,在PHP中,您将连接到MySQL数据库并使用从db中检索到的数据来呈现一些html。