无需使用Node.js设置本地服务器?
我看到当我想在本地机器上写一个Node.js Web应用程序时,我不需要使用WAMP或MAMP设置本地服务器。 node.js在幕后做了些什么?我提供这个代码,以使一个简单的Hello World Web应用程序:无需使用Node.js设置本地服务器?
var http = require("http");
http.createServer(function(request,response){
response.writeHead(200, {"content-type":"text/html"});
response.write("hello world");
response.end();
}).listen(8080);
console.log("server is running....");
当在浏览器地址栏加载“本地主机:8080”它的工作原理。
这是如何工作的,为什么我在使用Node.js时不需要本地服务器?
你确实有一个本地服务器......这是你的Node.js应用程序。
当您拨打http.createServer()
时,它会创建一个HTTP服务器。当您在该服务器上呼叫.listen()
时,它会绑定到请求的端口以及可选的请求地址,并侦听连接。当数据进入这些连接时,它会像其他任何HTTP服务器一样响应。
的HTTP服务器使用您的请求/响应回调,发射它,每当一个有效的HTTP请求的用武之地。
由于节点出现开箱你需要运行一个Web服务器的所有库,在HTTP库您使用的是开放8080端口和处理与您提供的
这部分的功能要求:
function(request,response){
response.writeHead(200, {"content-type":"text/html"});
response.write("hello world");
response.end();
}
不,你不需要它。因为节点本身可以成为你的网络服务器,就像你的例子一样。节点构建在V8上,这是一个Chrome JavaScript引擎。
看看一个快速JS模块,为您提供了很多功能开箱
基于V8并没有真正解释*为什么* Node可以充当Web服务器。这与Node内置的HTTP库有关。 – ssube
http.createServer(的)不为我创建一个服务器,它有一定道理吧。但是当我把我的网站放在托管服务器上时,我是否还需要使用“createServer()”方法?我想不是因为我的网站已经上传到远程服务器上了吗?这真是令人困惑对不起 –
@FaisalJulaidan您的节点应用程序未在Web服务器中运行。您的Node.js应用程序需要一种沟通方式。这通常是HTTP。通常将Web服务器(如Nginx)放在应用程序前面,但该HTTP服务器仍将使用HTTP与应用程序进行通信。 – Brad
据我了解,从您的评论是有两种类型的服务器1.HTTP服务器2.Web服务器?如果是的话,有什么区别!:) **抱歉让你感到不安** –