NodeJS中的"server"是什么?

17
这不是浏览器在客户端机器上托管的JavaScript引擎吗?

你的问题是否涉及在NodeJS中运行的HTTP服务器? - Dmytro Shevchenko
5个回答

16

不,不是这样的。

“服务器”一般有两个含义:

  1. 监听网络请求并响应它们的软件
  2. 运行此类软件的计算机

Node.JS 服务器可以是以上两种之一。

在Web编程中,Node.JS 服务器取代了Perl、Python、Ruby、PHP、Scala等语言。(就像这些其他语言一样,Node.JS 也允许您在非服务器和非Web目的下使用JavaScript。)

通常服务器本身是直接从Node运行的(例如,使用此库),而不是嵌入到另一个服务器中,比如Apache(这是PHP最常见的方式)。

浏览器根本不需要参与。如果有一个浏览器,则可能是充当客户端并向服务器发出请求。尽管如此,像PhantomJS这样的工具可以允许从Node(和其他编程语言)驱动浏览器。


1
我最近使用Node.js从一些txt文件中提取数据并将其发布到MSSQL服务器(学校作业),这就是它的全部功能。因此,它确实不是默认的HTTP服务器 :) - CherryNerd
1
@Quentin。非常感谢。现在假设我有一个使用NodeJS的Web应用程序,它托管在Tomcat、WebLogic等服务器上,那么这个服务器在哪里以及如何发挥作用? - Divs
5
正如我所说,Node.JS 就是服务器。你使用它来运行服务器端JavaScript程序,而不是使用Tomcat或WebLogic来运行服务器端Java程序(或者你会玩弄涉及多个服务器和多种服务器端语言(用于网站的不同部分)的把戏,这可能需要一些棘手的数据传递方式)。 - Quentin
1
@Quentin。如果我使用NodeJS,那么我不能有一个包含UI和服务器端Java代码的单个.war文件吗?如果不行,那么就需要创建2个可部署文件了吗? - Divs
1
由于JavaScript和Java是完全不同的语言(它们之间的共同点与汽车和地毯差不多),因此您不能使用Node来运行Java程序。 - Quentin
显示剩余2条评论

5

以下内容来自这里

服务器端JavaScript(SSJS)是指在服务器端运行的JavaScript,因此不会被下载到浏览器中。这个词用于区分它与正常的JavaScript,后者主要用于客户端(也称为客户端JavaScript或简称CSJS)。


4

NodeJS运行在V8 JavaScript引擎上,它不必在浏览器中运行,只需执行JS。它不依赖于您对其的使用方式。在NodeJS服务器的情况下,它监听HTTP请求,因此是一个服务器。


3

在这里输入图片描述

Node.js是一个单线程的进程,并运行事件循环。


4
这似乎是关于Node.JS的一个随机事实,与被问到的问题完全没有关系。 - Quentin

0
Node.js是一个安装在计算机上的框架/程序,其中包含用JavaScript编写的代码,并处理客户端(如浏览器)请求的这些代码,是的,每个浏览器都包含其自己的引擎来处理JavaScript。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接