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

时间:2017-11-08 07:30:40

标签: javascript node.js httpserver

当第一个应用程序显示此行时,我发现了很多来源

 var http = require('http');

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

只是极客,我的问题是为什么我们需要服务器/端口来监听我们对节点js应用程序的请求? 为什么我们不能作为localhost / application_name运行呢? 为什么我们需要它?

有人能讨好吗?

4 个答案:

答案 0 :(得分:3)

  

Node.js®是基于Chrome的V8 JavaScript引擎构建的JavaScript运行时。 Node.js使用事件驱动的非阻塞I / O模型,使其轻量且高效。 Node.js的包生态系统,npm,是世界上最大的开源库生态系统。

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

浏览器使用HTTP。因此,如果您想开发 Web应用程序,则需要使用该协议。如果您在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创建服务器。

您可以使用其他js文件,使用require

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

答案 1 :(得分:2)

您可以使用node运行任意javascript。您提供的代码专门设置了一个侦听端口8080的http服务器。您可以通过浏览到http://localhost:8080从同一台计算机上的浏览器访问该Web服务器。

答案 2 :(得分:0)

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

提供服务

如果您不通过http服务JS,PHP,Python ...浏览器会将这些文件视为其他不受支持的文件,如.tar文件。

Node是JavaScript环境,不是Web服务器。您需要一台服务器来服务您的应用程序。您可以使用http,https或者您可以创建任何其他可以为您的js文件提供服务的服务器。

好吧,我不知道我的回答是否足够明确,但希望您能知道为什么在nodejs应用程序中使用http模块。

答案 3 :(得分:-1)

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

相关问题