Node.js fs创建文件模块本地服务无法运行,页面持续加载求助
解决Node.js本地服务器持续加载无响应的问题
问题根源
你的代码里有两个核心错误导致服务器无法正常响应:
- 请求路径判断错误:
req是HTTP请求对象,不是路径字符串,必须通过req.url获取当前请求的路径。原代码里if (req=='/')永远不会成立,导致所有请求都进入无响应状态。 - 未处理非根路径请求:当客户端请求的不是根路径
/时,服务器没有返回任何响应,客户端会一直等待直到超时。
修正后的代码
var fs = require('fs'); var http = require('http'); var server = http.createServer(function(req, res) { // 正确获取请求路径 if (req.url === '/') { fs.writeFile('mynewfile3.txt', 'New text', function(error) { if (error) { res.writeHead(500, {'Content-Type': 'text/html'}); res.write('文件写入失败'); res.end(); } else { res.writeHead(200, {'Content-Type': 'text/html'}); res.write('文件写入成功'); res.end(); } }); } else { // 处理所有非根路径请求,返回404 res.writeHead(404, {'Content-Type': 'text/html'}); res.write('页面未找到'); res.end(); } }); server.listen(7070); console.log('服务器已启动在7070端口');
额外说明
- 将文件写入失败时的状态码改为
500(服务器内部错误),更符合HTTP状态码规范,比原代码的200更合理。 - 新增非根路径处理逻辑,确保所有请求都能得到响应,避免客户端持续加载。
内容的提问来源于stack exchange,提问作者Meshkat Rangon
相关产品推荐
相关产品推荐

