【发布时间】:2023-03-11 22:43:02
【问题描述】:
如果在Asp.net中开发Web应用程序,则需要IIS来运行Web服务器。
这些two(Asp.net and IIS) works together怎么样? IIS 是否获取构建文件并运行服务器?
expressjs(nodejs 的框架)不使用任何其他软件,如何运行 Web 服务器?
【问题讨论】:
如果在Asp.net中开发Web应用程序,则需要IIS来运行Web服务器。
这些two(Asp.net and IIS) works together怎么样? IIS 是否获取构建文件并运行服务器?
expressjs(nodejs 的框架)不使用任何其他软件,如何运行 Web 服务器?
【问题讨论】:
我可以解释 node.js 方面的事情,希望其他人能来解释 IIS/ASP.net 方面的事情。
Node.js 是一个通用的 Javascript 运行时环境。您可以在其中构建各种应用程序,甚至是与 Web 服务器完全无关的应用程序。
恰好 node.js 中的内置库之一是 http/https 服务器。因此,如果您想构建一个 node.js 驱动的 Web 服务器,您只需获取 http 服务器对象,创建一个服务器,启动它并在请求处理上进行编程。
Express 是一个构建在 node.js http/https 服务器对象之上的 Web 框架。它使用内置服务器并提供一个框架来定义请求处理程序、设置路由和中间件,并且支持中间件 API 支持各种 3rd 方库来执行各种 Web 服务器类型的事情,例如身份验证、加密、压缩、上传、下载、图像处理、音频处理、视频处理等……
node.js 与许多其他 web 服务器框架的不同之处在于 node.js 并没有一开始就说我只是一个做 web 服务器工作的工具。它最初是一个通用编程环境,恰好内置了一个非常好的 Web 服务器,作为人们可以使用的工具之一。而且,只需几行代码即可使用内置支持创建和启动您自己的 Web 服务器。我会大胆猜测,构建 Web 服务器应用程序可能是使用 node.js 做的最流行的事情,但肯定不是唯一的事情。
例如,我编写了一个 node.js 脚本,它在我的磁盘驱动器上进行夜间大扫除。它从我的临时目录中删除某些类型的文件。它有助于管理备份文件(仅保留我的 Adobe Lightroom 目录的最后 10 个备份)。 node.js 的这种使用与 Web 服务器完全无关。它只是一个Javascript运行时环境,我碰巧使用其中的文件系统访问库来做一堆文件管理。
例如,下面是在普通 node.js 中启动基本 Web 服务器的代码:
const http = require('http');
const server = http.createServer(function(req, res) {
console.log("got a request from", req.url);
res.end("Hi");
});
// start web server on port 3000
server.listen(3000);
【讨论】: