为什么我们需要将 http 模块安装到 运行 我们的节点 js 应用程序?

Why we need http module installed to run our node js application?

当第一个应用程序显示这一行时,我现在已经找到了很多资源

 var http = require('http');

http.createServer(function (req, res) {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Hello World!');
}).listen(8080); 

作为极客,我的问题是为什么我们需要 server/port 来监听我们对 node js 应用程序的请求? 为什么我们不能用 运行 代替 localhost/application_name? 为什么我们需要它?

有人可以详细说明吗?

您可以 运行 任意 javascript 和 node。您提供的代码专门设置了一个侦听端口 8080 的 http 服务器。您可以通过浏览到 http://localhost:8080.

从同一台计算机上的浏览器访问该网络服务器

我们不需要安装 'http' 模块来使用它,它已经存在于 nodejs 框架本身中。

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient. Node.js' package ecosystem, npm, is the largest ecosystem of open source libraries in the world.

因此,如果您想要一个仅适用于 bash 的应用程序,则不需要任何 http 模块。

浏览器使用 HTTP。所以如果你想开发一个 网络应用程序 你需要使用那个协议。如果你 运行 你的项目在 80 端口上,你可以像 localhost/my_application 一样使用它。

简单app.js

var result = doSomething();
functions doSomething(){
    return "This the result";
}
console.log(result);

您可以从 bash 调用它。 node app.js。但它只是工作并停止。

但是,如果您想将此结构提供给 WWW(使用 HTTP),则需要创建服务器。 http 是一个很棒且简单的模块,用于使用 node.js.

创建服务器

您可以通过使用 require.

来使用其他 js 文件

app.js

var result = doSomething();
functions doSomething(){
    return "This the result";
}
module.exports = result;

server.js

http.createServer(function (req, res) {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    var result = require('app.js');
    res.end(result);
}).listen(80);

现在您可以 运行 您的服务器了。 node server.js

如果您想查看任何编程语言的输出,您可以将其作为 http 提供,因为您希望浏览器访问您的服务器。就像你所做的那样 php 内置服务器 php -S localhost:8081 或通过 nginx 或 apache

提供服务

如果您不通过 h​​ttp 提供 JS,PHP、Python ...,浏览器会将这些文件视为其他不受支持的文件,如 .tar 文件。

节点是 JavaScript 环境,不是网络服务器。您需要一个服务器来为您的应用程序提供服务。您可以使用 http、https,也可以创建任何其他可以为您的 js 文件提供服务的服务器。

好吧,我不知道我的回答是否足够清楚,可以解释,但希望您对为什么在 nodejs 应用程序中使用 http 模块有所了解。