很难理解服务器端脚本

hard time understanding server side script

我了解到 php 和 node.js 都是服务器端脚本。

我很难理解网络浏览器上 node.js 和 运行 javascript 之间的联系。那么我们不能在网络浏览器上使用 javascript 访问文件和数据库吗?服务器端脚本和客户端脚本如何连接(或者我们如何连接它们)?或者我应该将它们视为完全不同的东西?

一个更令人困惑的事实是,我了解到我可以在 html 文件中使用 php 访问数据库和文件,但是 node.js 呢?

提前致谢!

I'm having hard time understanding the connection between node.js and running javascript on web browser.

没有一个。

JavaScript只是一种编程语言。你在里面写软件。您可以 运行 在不同的地方使用该软件。您可以使用该软件做什么取决于您 运行 它的位置。

我可以写一些 JavaScript 来打开和关闭我家里的灯。如果我没有能让我这样做的硬件,那我就做不到。

JavaScript 运行 可以编写浏览器中的 ning 来执行浏览器使之成为可能的事情。

JavaScript 运行ning in Node.js 可以写成做 Node.js 使之成为可能的事情。

How are server-side-script and client-side-script connected(or how can we connect them)?

JavaScript 运行在浏览器中 ning 可以向 HTTP 服务器发出 HTTP 请求(并处理来自 HTTP 服务器的响应)。

JavaScript 运行ning in Node.js 可以是 HTTP 服务器。

One more confusing fact is that I learned that I can get access to database and files using php within html file, but what about node.js?

不,你不能。

如果你运行PHP通过网络服务器,那么PHP会自动生成HTTP响应headers表示正在输出HTML(你可以覆盖它)。

在 PHP 语言中,<?php ... ?> 之外的代码将直接流式传输到输出。

这意味着您可以在 PHP 程序中键入 HTML 文档,但在 <?php ... ?> 之外并且看起来 HTML 中有 PHP =] 文档。真的,它是一个生成 HTML 文档的 PHP 程序。

JavaScript 这样不行。它没有 "Real JavaScript mode"(如 <?js ?>)和 "Stream directly to output mode"。

有很多模板引擎可供您使用,包括 EJS(它允许您将 JS 嵌入到模板中)。我自己倾向于nunjucks。

我建议您阅读一些有关客户端和服务器端技术之间差异的文章。这是对基础知识的很好解释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 数据库并使用从数据库中检索到的数据呈现一些 html。