文件浏览器【实现只能读取一个跳转的.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}/`)
})
结果