当第一个应用程序显示此行时,我发现了很多来源
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运行呢? 为什么我们需要它?
有人能讨好吗?
答案 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框架本身。