请教关于Nodejs的demo浏览器访问加端口号无显示问题

请教关于Nodejs的demo浏览器访问加端口号无显示问题

各位朋友,第一次使用node.js,我用了简单的server.js,然后服务器启动node server.js

server.js内容为:

var http = require(‘http’); http.createServer(function(req,res) { res.writeHead(200, {‘Content-Type’:‘text/html’}); res.write(‘hello’); res.end(‘Hello World’); }).listen(8001); console.log(“HTTP server is listening at port 8001.”);

我使用的8001端口,然后在浏览器端,我输入我的服务器IP地址后面加端口号8001,加载后就提示“无法显示此页面”! http://我的服务器数字IP:8001 这样为何显示不出呢? 请大家帮忙指点下,谢谢!


6 回复

当然可以。根据你提供的内容,我们来分析一下可能的问题,并提供一个简单的示例代码以帮助解决这个问题。

分析问题

  1. 代码错误:你的 server.js 文件中有一些拼写错误,比如引号使用的是中文字符而不是英文字符。
  2. 端口被占用:确保8001端口没有被其他程序占用。
  3. 防火墙设置:检查服务器的防火墙设置,确保8001端口是开放的。
  4. 网络配置:确保你的服务器能够从外部网络访问。

示例代码

首先,修正 server.js 中的错误:

var http = require('http');

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

console.log("HTTP server is listening at port 8001.");

调试步骤

  1. 运行代码: 打开命令行工具,进入包含 server.js 的目录,运行以下命令:

    node server.js
    
  2. 检查日志: 确保看到输出 “HTTP server is listening at port 8001.”,这表明服务器已经成功启动并监听8001端口。

  3. 防火墙设置: 如果你使用的是Linux系统,可以通过以下命令检查端口是否开放:

    sudo ufw status
    

    如果端口未开放,可以添加规则:

    sudo ufw allow 8001
    
  4. 网络配置: 确保你的服务器可以从外部网络访问。你可以尝试在本地机器上通过 curl 或浏览器访问:

    curl http://<服务器IP>:8001
    

    或者直接在浏览器中输入:

    http://<服务器IP>:8001
    

常见错误排查

  • 端口占用:如果你发现8001端口已被占用,可以更改你的Node.js应用监听的端口,例如改为8002:
    .listen(8002);
    
  • 代码逻辑错误:确保你的代码逻辑正确,没有语法错误或拼写错误。

通过以上步骤,你应该能够解决这个问题。如果仍然遇到问题,请提供更多详细信息以便进一步诊断。


我使用的是阿里云服务器哦!

看看防火墙设置,8001端口开了没有。

后台 log 有没有访问的记录或出错信息?

第一,先检查你的服务是不是还跑着,第二看你的服务器能不能ping通,第三,如果上面个两条你的都确认过了,你再来回复我吧。

根据你的描述,可能是由于以下几个原因导致浏览器无法显示页面:

  1. 防火墙或安全组设置:确保服务器的防火墙或云服务提供商的安全组允许外部访问8001端口。

  2. 服务器是否正确运行:确保server.js没有错误,并且服务器已经成功启动。

  3. IP地址输入是否正确:确保你在浏览器中输入的IP地址是正确的。如果是本地测试,可以尝试localhost:8001

示例代码修正

你的server.js代码有一些小问题,以下是修正后的版本:

const http = require('http');

http.createServer((req, res) => {
    res.writeHead(200, {'Content-Type': 'text/html'});
    res.write('hello');
    res.end('Hello World');
}).listen(8001);

console.log("HTTP server is listening at port 8001.");

注意:

  • require 的引号应使用英文单引号或双引号,不要使用中文引号。
  • res.write('hello');res.end('Hello World'); 可以合并为一个res.end(),因为res.end()会自动发送响应头并结束响应。

检查步骤

  1. 检查服务器日志:确保没有错误信息输出。
  2. 使用curl命令:在服务器上运行curl http://localhost:8001,查看是否有响应。
  3. 防火墙设置:确保8001端口开放。
  4. 安全组配置:如果是在云服务器上运行,确保安全组配置允许外部访问8001端口。

通过这些步骤,你应该能够找到问题所在并解决它。

回到顶部