• 判断mine类型


    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(pathname);
    
        //把文件读出来
        fs.readFile(fileURL,function(err,data){
            //读完之后做的事情
            if(err){
                //文件不存在
                res.writeHead(404,{"Content-Type":"text/html;charset=UTF8"})
                res.end("404,页面没有找到");
            }
            //读完之后做的事情
            getMime(extname,function(mime){
                res.writeHead(200,{"Content-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";
            //执行回调函数,mime类型字符串,就是它的参数
            callback(mime);
        });
    }
  • 相关阅读:
    一道压强题
    考试习惯的审题+习题+电脑存放目录记录
    产品需求分类及KANO模型需求排序学习
    马斯洛需求层次理论及其新拓展学习笔记
    12-JQuery学习之bind绑定事件
    11-JQuery学习之ready预加载事件
    09-JQuery学习之删除元素
    10-JQuery学习之遍历元素
    08-JQuery学习之创建元素和添加元素
    06-JQuery学习之操作元素的样式
  • 原文地址:https://www.cnblogs.com/Erick-L/p/7768837.html
Copyright © 2020-2023  润新知