【Node.js】文件浏览器【实现只能读取一个跳转的.html文件】

    科技2025-09-10  50

    文件浏览器【实现只能读取一个跳转的.html文件】

    const http=require('http'); const path=require('path'); const url=require('url'); const fs=require('fs'); const hostname ='172.16.124.101'; const port=8010; var documentRoot ='D:/projects/node/lessons/servers/server'; const server=http.createServer((req,res)=>{ let pathname=url.parse(req.url).pathname; var urlname=req.url; var file=documentRoot+urlname; console.log(pathname); console.log(file); if(pathname=='/'){ //fs.readdir(path,[callback(err,files)]):以异步的方式读取文件目录 //path目录路径,callback回调函数,传递两个参数err和files,files是一个包含"指定目录下所有文件名称的"数组 fs.readdir(documentRoot,function(err,files){ if(err){ console.log("files err"); res.writeHeader(404,{ 'content-type':'text/html;charset="utf-8"' }); res.write('<h1>文件读取错误</h1><p>你要找的页面不存在</p>'); res.end(); }else{ res.writeHeader(200,{ 'content-type':'text/html;charset="utf-8"' }); for(let i=0;i<files.length;i++){ if(files[i].substr(-5)=='.html'){ res.write('<a href="'+files[i]+'">'+files[i]+'</a><br>'); }else{ res.write(files[i]); res.write("<br>"); } } res.end(); } } ); } else if (pathname='/'){ res.writeHead(200, { 'Content-Type': 'text/html' }); res.end(fs.readFileSync(path.join(__dirname, pathname, 'Untitled-1.html'))); }else{ res.writeHeader(404,{ 'content-type': 'text/html;charset="utf-8"' }); res.write('<h1>404错误</h1><p>你要找的页面不存在</p>'); res.end(); } }); server.listen(port,hostname,()=>{ console.log(`Server running at http://${hostname}:${port}/`) })

    结果

    问题

    Processed: 0.010, SQL: 8