Javascript ExpressJS下面是什么?
我熟悉ExpressJS和Flask等服务器技术。另一方面,我清楚地理解了CGI和Servlet的基本概念。Flask/Django进一步将CGI扩展到WSGI并使用它。而且,Servlet在Java框架中被广泛使用。现在,ExpressJS/NodeJS下面是什么?我完全失明,我甚至不知道这是否相关Javascript ExpressJS下面是什么?,javascript,node.js,express,Javascript,Node.js,Express,我熟悉ExpressJS和Flask等服务器技术。另一方面,我清楚地理解了CGI和Servlet的基本概念。Flask/Django进一步将CGI扩展到WSGI并使用它。而且,Servlet在Java框架中被广泛使用。现在,ExpressJS/NodeJS下面是什么?我完全失明,我甚至不知道这是否相关 如果我的问题很愚蠢,请纠正。我无法将这些技术相互关联。ExpressJS使用内置的nodejs http/https模块作为其http服务器。您的express实例本身就是一个http服务器 它不
如果我的问题很愚蠢,请纠正。我无法将这些技术相互关联。ExpressJS使用内置的nodejs http/https模块作为其http服务器。您的express实例本身就是一个http服务器 它不像Apache或CGI那样工作,在其他地方有一个http服务器在向您转发某些请求,或者在CGI的情况下,它可能与其他应用程序或甚至其他租户(在多租户环境中)共享,在与您的URL匹配时运行程序或脚本 相反,您的express实例本身就是一个http服务器。它接收自己的http请求,解析所请求资源的路径和所使用的http谓词,然后对照各种Express定义的路由检查它们是否匹配,以便调用与这些路由关联的回调
因此,在nodejs中,http服务器只是基于服务器的应用程序可以使用的一个组件,而不是一个完全独立的、独立运行的、可以配置为代表许多独立应用程序执行许多操作的http服务器。事实上,它可以在不同的端口上有多个http服务器,用于不同的目的,所有这些都是同一代码体的一部分。例如,可能有一个外向的https服务器,在端口80上记录来自客户的传入请求,在端口4000上可能有一个单独的http服务器(通常称为控制端口),用于日志设置或负载管理等维护活动,诊断活动,如访问内部保存的服务器统计信息等。ExpressJS使用内置的nodejs http/https模块作为其http服务器。您的express实例本身就是一个http服务器 它不像Apache或CGI那样工作,在其他地方有一个http服务器在向您转发某些请求,或者在CGI的情况下,它可能与其他应用程序或甚至其他租户(在多租户环境中)共享,在与您的URL匹配时运行程序或脚本 相反,您的express实例本身就是一个http服务器。它接收自己的http请求,解析所请求资源的路径和所使用的http谓词,然后对照各种Express定义的路由检查它们是否匹配,以便调用与这些路由关联的回调
因此,在nodejs中,http服务器只是基于服务器的应用程序可以使用的一个组件,而不是一个完全独立的、独立运行的、可以配置为代表许多独立应用程序执行许多操作的http服务器。事实上,它可以在不同的端口上有多个http服务器,用于不同的目的,所有这些都是同一代码体的一部分。例如,可能有一个外向的https服务器,在端口80上记录来自客户的传入请求,在端口4000上可能有一个单独的http服务器(通常称为控制端口),用于日志设置或负载管理等维护活动,诊断活动,如访问内部保存的服务器统计信息等。Express是nodejs框架。express和nodejs都用于服务器端渲染。但expressjs易于使用且用户友好。e、 x: 我们用expressjs编写
const express = require('express')
const app = express();
app.get('/', (req, res) = {
res.send('Welcome to hompe page.')
})
app.listen(5500)
但是在nodejs中
const http = require('http');
const requestListener = function (req, res) {
res.writeHead(200);
res.end('Hello, World!');
}
const server = http.createServer(requestListener);
server.listen(8080);
还有很多事情要做,你会发现express很容易使用。express是nodejs框架。express和nodejs都用于服务器端渲染。但expressjs易于使用且用户友好。e、 x: 我们用expressjs编写
const express = require('express')
const app = express();
app.get('/', (req, res) = {
res.send('Welcome to hompe page.')
})
app.listen(5500)
但是在nodejs中
const http = require('http');
const requestListener = function (req, res) {
res.writeHead(200);
res.end('Hello, World!');
}
const server = http.createServer(requestListener);
server.listen(8080);
还有很多事情要做,你会发现express很容易使用。谢谢。但是,Java和Python有自己的http模块。那他们为什么要依赖于Apache或CGI呢?@NikhileshAS-Java不必依赖于CGI或Apache。他们只是选择支持它作为一种可能的部署模型。Nodejs也可以这样使用,但这不是他们选择优化的目的。更有可能的是,Nodejs通过使用像NGINX这样的代理将流量分配到不同的web服务器而不是使用Apache或CGI来适应多租户结构。@NikhileshAS-在更大规模的部署中,可以在Nodejs前面使用NGINX或其他代理来处理静态资源、https端点、负载平衡、,URL重定向、一些安全障碍等。。。Apache在其他体系结构中可能有用的一些东西。@NikhileshAS-我还认为Java是在http服务器被认为是连接各种应用程序的主要集中式东西的时代成长起来的。最初的体系结构被认为是一个应用服务器,连接到一个单独的http服务器。当nodejs出现时,世界已经进步了,http服务器可以仅仅是一个组件,您可以在自己的应用程序中合并和构建。而且,很久以前,每个传入的http请求都会从头开始启动一个程序来满足该请求(就像最初的CGI架构一样)。我想这就是网页速度较慢的原因。谢谢。但是,Java和Python有自己的http模块。那他们为什么要依赖于Apache或CGI呢?@NikhileshAS-Java不必依赖于CGI或Apache。他们只是选择支持它作为一种可能的部署模型。Nodejs也可以这样使用,但这不是他们选择优化的目的。更有可能的是,Nodejs通过使用像NGINX这样的代理将流量分配到不同的web服务器而不是使用Apache或CGI来适应多租户结构。@NikhileshAS-在更大规模的部署中,可能会使用