四、node读取不同类型的文件

2019-08-21  本文已影响0人  向上而活
//读取不同类型的文件(img、html、css、js........)
var http=require("http");
var fs=require("fs");
var url=require("url");
var path=require("path");

var server=http.createServer(function(req,res){
    //这里如果不用req.url来if判断,那么用户不管输入什么网址,做的事情都一样
    //得到地址
    var pathname=url.parse(req.url).pathname;
    //判读此时用户输入的地址是文件夹地址还是文件地址
    //如果是文件夹地址,那么自动请求这个文件夹中的index.html
    if(pathname.indexOf('.')==-1){
        pathname+="/index.html";
    }
    //输入的网址是127.0.0.1/images/logo.png
    //实际请求的是./static/images/logo.png
    var fileurl="./"+path.normalize("./static/"+pathname);
    //得到拓展名
    var extname=path.extname();
    //把文件读出来
    fs.feadFile(fileurl,function(err,data){
        //读完之后做的事情
        if(err){
            //文件不存在
            res.writeHead(200,{"Content-Type":"text/html;charset=UTF8"})
            res.end("404,页面没有找到");
        }
        //读完之后做的事情
        getMime(extname,function(mime){
            res.writeHead(200,{"Conment-Type":mime})
            res.end(data);
        });
    });
});
server.listen(80,"127.0.0.1");
function getMime(extname,callback){
    //读取mime.json 得到JSON,根据extname key,返回对应的value
    //读取文件
    fs.readFile("./mime.json",function(err,data){
        if(err){
            throw Error("找不到mime.json文件");
            return;
        }
        //转成JSON
        var mimeJSON=JSON.parse(data);
        var mime=mimeJSON[extname]||"text/plain";
        
        callback(mime);
    })
}
上一篇 下一篇

猜你喜欢

热点阅读