首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >新手: JavaScript VS Node

新手: JavaScript VS Node
EN

Stack Overflow用户
提问于 2016-07-18 02:39:26
回答 3查看 19K关注 0票数 12

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

EN

回答 3

Stack Overflow用户

发布于 2016-07-18 02:49:51

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

所有的浏览器都有运行网页JavaScript的JavaScript引擎(火狐的Spidermonkey,Chrome的V8 )。

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

票数 46
EN

Stack Overflow用户

发布于 2016-07-18 02:49:58

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

您有一个名为"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://localhost:3000“来访问您在上面启动的web服务器。服务器知道如何提供静态文件,并且知道默认情况下它应该提供index.html。您的浏览器加载index.html,处理它,并理解它也应该返回并请求app.js文件(因为index.html中的<script>标记)。当浏览器加载app.js时,浏览器会运行它。Node.js服务器除了将其作为另一个静态文件提供服务外,什么都不关心。

票数 13
EN

Stack Overflow用户

发布于 2016-07-18 02:41:54

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

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

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38424672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档