【问题标题】:newbie: JavaScript VS Node JS [closed]新手:JavaScript VS Node JS [关闭]
【发布时间】:2016-11-20 08:23:55
【问题描述】:

如果JavaScript文件在浏览器中加载并执行,服务器如何知道文件何时是节点js文件,从而在服务器上执行?

【问题讨论】:

    标签: javascript node.js


    【解决方案1】:

    JavaScript 是一种语言。 node.js 不是一种语言,而是一种运行普通 JavaScript 的“环境/软件集”。

    所有浏览器都有运行网页 JavaScript 的 JavaScript 引擎(Firefox 的蜘蛛猴,Chrome 的 V8)。

    Node.js 只是与一些库捆绑的 V8 引擎,用于执行 I/O 和网络,因此您可以在浏览器之外使用 JavaScript(例如,创建后端服务)。

    【讨论】:

    • 最后一段是我见过的最好的解释。简洁实用。谢谢。
    【解决方案2】:

    我认为当空气中出现混乱时,具体示例比概念解释更有效。所以,举个例子:

    您有一个名为“hello.js”的 Node.js 脚本(当然是在 JavaScript 中),它只打印“Hello World!”在控制台中并退出。您可以通过键入node hello.js 来运行此脚本。它只会打印消息并退出。

    您有另一个名为“server.js”的 Node.js 脚本,它实现了一个 HTTP 服务器(也称为 Web 服务器),它在端口 3000 上进行侦听。该服务器从一个名为“static”的目录中提供静态文件。此文件夹中有两个文件:“index.html”和“app.js”。这些是网站的文件(当然,app.js 是用 JavaScript 编写的)。您可以通过键入 node server.js 来运行此脚本。它将启动 HTTP 服务器并开始等待客户端请求。

    当 HTTP 服务器脚本运行时,您访问“http://localhost:3000”以访问您在上面启动的 Web 服务器。服务器知道如何提供静态文件,并且知道它应该默认提供 index.html。您的浏览器加载 index.html,对其进行处理并理解它还应该返回并请求 app.js 文件(因为 index.html 中的 <script> 标记)。当浏览器加载 app.js 时,浏览器会运行它。 Node.js 服务器不关心任何事情,只是将其作为另一个静态文件提供服务。

    【讨论】:

      【解决方案3】:

      Web 浏览器和 nodejs 都运行 javascript 脚本。主要区别在于 NodeJS 是一个服务器端框架,并且在服务器而不是在 Web 浏览器(客户端)的环境中执行 javascript 代码。

      没有像nodejs文件这样的概念。只有 javascriprt 脚本可以在客户端(借助内置在 Web 浏览器中的 JavaScript 引擎,如 Chrome 的 V8)或服务器(在本例中借助 NodeJS 的帮助)运行。顺便说一下,如果我没记错的话,NodeJS 使用的 JavaScript 引擎是 V8,谷歌的 JavaScript 引擎。)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-06-23
        • 2021-08-07
        • 1970-01-01
        • 2018-01-10
        • 1970-01-01
        • 1970-01-01
        • 2014-10-20
        • 1970-01-01
        相关资源
        最近更新 更多