Node.js_路由机制_小应用(3)

小应用项目需求:
创建一个文件夹myweb,我们的程序能够自动为里面的文件、图片、css、js加上路由。

//day1\09.js
//路由机制小应用 自动目录读取
var http=require("http");
var fs=require("fs");
var url=require("url");
var path=require("path");
var querystring=require("querystring");
//准备一个映射关系对
var mime={
    ".jpg":"image/jpeg",
    ".jpeg":"image/jpeg",
    ".gif": "image/gif",
    ".png": "image/png",
    ".html":"text/html;charset=UTF-8",
    ".css":"text/css",
    ".js":"application/x-javascript"
}
var server=http.createServer(function(req,res){
    //设置response响应头部
    res.setHeader("Content-Type","text/html;charset=UTF-8");
    //得到用户读取什么
    //url.parse(req.url) 将url转为对象。
    var pathname=url.parse(req.url).pathname;
    //得到拓展名
    var extname=path.extname(pathname);
    if(!extname){
        //如果不是以/结尾,此时会造成浏览器识别图片路径层次有问题。
        //比如http://127.0.0.1/b和http://127.0.0.1/b/ 不一样。
        //前者认为是统计目录下的图片,后者认为是b文件夹中的。
        if(pathname.substr(-1)!="/"){
            //检查是否有 "/"
            res.writeHead(302,{"Location": pathname+"/"});
        }
        pathname+="/index.html";
    }
    //真的读取这个文件
    fs.readFile("./myweb/"+pathname,function(err,data){
        if(err){
            res.end("没有这个文件");
            return;
        }
        //检查是否属于我已知的mime类型
        if(mime.hasOwnProperty(extname)){
            res.setHeader("content-type",mime[extname]);
        }
        res.end(data);
    });
    
});
server.listen(3000,"127.0.0.1");
console.log("server start at 3000 port");

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值