首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么节点服务器必须在文件更改时重新启动?

为什么节点服务器必须在文件更改时重新启动?
EN

Stack Overflow用户
提问于 2015-12-15 05:55:15
回答 1查看 3K关注 0票数 7

当文件发生更改时,为什么需要重新启动NodeJS服务器?其他服务器,如Apache、IIS、nginx也需要这样做,还是可以自动重新启动?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-15 06:26:57

您没有说明您正在讨论的是哪些文件,所以我将提到几种不同类型的文件的问题。

对于构成node.js服务器Javascript代码的Javascript文件,node.js是一个持续运行的服务器。这意味着当服务器启动时,它会将Javascript代码解析到内存中,然后开始执行它。该服务器进程一直在运行,直到停止为止。因为node.js是一个持续运行的服务器,如果您想要更新构成服务器代码的Javascript文件,您必须停止服务器并重新启动它,让它加载和修复新更改的源文件。

这与PHP与Apache非常不同,Apache为每个单独的请求从零开始运行给定的PHP脚本。因为没有长时间运行PHP应用程序,而且每个PHP脚本都是针对每个请求从头开始的,所以它可以自动地获得一个新修改的PHP脚本,而无需重新启动Apache服务器。如果您有一个完全用PHP编写的长时间运行的服务器,那么它可能有类似于node.js的行为。

而且,如果您想升级Apache服务器代码,就必须重新启动Apache (与node.js一样)。

您可以将node.js看作是Apache + PHP,因为这两个函数通常都是由node.js本身来实现的。它将web服务器功能与webapp逻辑集成在一起,而这些功能与Apache + PHP是分开的。

对于服务器提供并交付给浏览器的HTML文件或Javascript文件,通常不必重新启动服务器,以便在后续的浏览器请求中使用这些文件的新版本。但是,这在一定程度上取决于您正在使用的服务器框架以及它如何实现文件缓存。这种行为并不是node.js特有的,而是内置在web服务器为文件提供服务的任何代码中(例如,Express或诸如此类的代码)。

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

https://stackoverflow.com/questions/34282049

复制
相关文章

相似问题

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