gpt4 book ai didi

javascript - Mac OS X 上的本地主机 :8080 is not loaded for Node. js

转载 作者:行者123 更新时间:2023-12-03 07:56:03 26 4
gpt4 key购买 nike

我正在学习 Node.js 教程,并且我有以下代码:

var http = require("http");

http.createServer(function (request, response){
request.on("end", function() {
response.writeHead(200, {
'Content-Type': 'text/plain'
});
response.end('Hello HTTP!');
});
}).listen(8080);

我已将该代码保存为 http.js。当我尝试检查 localhost:8080 时,没有任何反应,只是等待。但是,当我尝试输入 localhost 时,我看到虚拟“它有效!”信息。可能我的电脑上也正在运行一些东西。我怎样才能摆脱它?我尝试停止 apache 并删除/Library/WebServer/Documents 中的所有内容。

最佳答案

const http = require('http');

http.createServer( function (request, response) {
response.writeHead(200, {'Content-Type': 'text/plain'});
response.end('Hello World\n');
}).listen(8080);

这是 NodeJS 中的一个简单的 http 服务器。

“它有效!”是成功安装/运行Apache http服务器的默认index.html,默认运行在端口80上。而你的nodejs服务器正在监听端口8080,所以没有问题,两者可以共存。

如果你仍然想停止 apache 服务器,有可能

sudo service apache2 stop

可以使用。

如果有任何服务器在端口 8080 上运行,然后您尝试在端口 8080 上启动 http 服务器,您将收到 Error: Listen EADDRINUSE 如果您的服务器启动时没有出现此错误,则可以确定端口 8080 上没有其他任何程序运行

编辑:当来自客户端(浏览器)的请求结束时,会触发 request.on(end) 。但在您的情况下,浏览器仍在等待您的响应,并且请求正在等待处理。一旦您调用 response.end()request.on(end) 将立即被触发。

现在我将修改您的代码,以这种方式工作,进行一些小的修改

var http = require("http");

http.createServer(function (request, response){
response.end('Hello HTTP!'); //change
request.on("end", function() {
//should be outside or removed
/*response.writeHead(200, {
'Content-Type': 'text/plain'
});*/

});
}).listen(8080);

关于javascript - Mac OS X 上的本地主机 :8080 is not loaded for Node. js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34796204/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com