如何解决JavaScript VS Node JS?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (50)

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

提问于
用户回答回答于

我认为当空气混乱时,具体的例子比概念性解释更有效。所以,举个例子:有一个名为“hello.js”的Node.js脚本(当然是JavaScript)只打印“Hello World!” 在控制台和退出。您可以通过键入来运行此脚本node hello.js,只会打印消息并退出。有另一个名为“server.js”的Node.js脚本,它实现了一个侦听端口3000的HTTP服务器(也称为Web服务器)。该服务器从名为“static”的目录中提供静态文件。此文件夹中有两个文件:“index.html”和“app.js”。这些是网站的文件(当然,app.js是用JavaScript编写的)。可以通过键入来运行此脚本node server.js。它将启动HTTP服务器并开始等待客户端请求。

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

用户回答回答于

想在Christos的回答中添加一些内容

JavaScript是一种语言。node.js不是一种语言,而是一种运行普通JavaScript的“environement / set of software”。所有浏览器都有运行JavaScript网页的JavaScript引擎(适用于Firefox的Spidermonkey,适用于Chrome的V8)。Node.js只是与一些库捆绑在一起的V8引擎,用于执行I / O和网络,因此可以在浏览器之外使用JavaScript(例如,创建后端服务)。

扫码关注云+社区

领取腾讯云代金券