App.js:
var http=require("http");
var router=require("./router");
http.createServer(function(req,res){
router(req,res,"./static");
}).listen(8100);
router.js:
var fs=require("fs");
var url=require("url");
//path模块 解析路径后缀
var path=require("path");
var mime=require("./readmime");
module.exports=function(req,res,static){
var pathname=url.parse(req.url).pathname;
if(pathname!="/favicon.ico"){
if(pathname=="/"){
pathname="/index.html";
}
//网页取出来是index.html,少一个/ 因此要在pathname="index.html"的index.html前加/ 加上之后网页取出来的是/index.html
//console.log(pathname);
fs.readFile(static+pathname,function(err,data){
if(err){
console.log(404);
return false;
}
//exname取当前文件的后缀名 .jpg
var exname=path.extname(pathname);
mime(exname,function(result){
res.writeHead(200,{"Content-Type":result+";charset=utf-8"});
res.write(data);
res.end();
});
});
}
}
readmime.js:
var fs=require("fs");
module.exports=function(dir,callback){
//dir是后缀名 .jpg callback括号里的值指image/jpeg
fs.readFile("./mime.json",function(err,data){
if(err) throw err;
callback(JSON.parse(data.toString())[dir]);
});
}
目录:
实现效果: