path.extname(p)
返回路径中文件的后缀名,即路径中最后一个
'.'
之后的部分。如果一个路径中并不包含'.'
或该路径只包含一个'.'
且这个’.'为路径的第一个字符,则此命令返回空字符串。
cnpm init
,生成package.json
文件,里面是自己填写的各种信息app.js
作为项目的启动文件(主文件)const http = require("http");
let server=require("./model/server");//方法封装在derver模块中
http.createServer(server).listen(8080, "localhost", () => {
console.log("http://127.0.0.1:8080/");//我的 本机端口号
});
直接添加(代码过多只截取主要部分)
{……
".jpe":"image/jpeg" ,
".jpeg":"image/jpeg" ,
".jpg":"image/jpeg" ,
".jpz":"image/jpeg" ,
".js":"application/x-javascript" ,
……
}
const url = require("url");
const fs = require("fs");
const pathmodule = require("path");//请求path模块(想获取后缀名)
let mime = require("./mime.json");//请求后缀名json
module.exports = (req, res) => {//暴露方法
let path = url.parse(req.url); //解析路径
let pathname = path.pathname;
if (pathname != "/favicon.ico") {//让浏览器只加载一次
//加载首页
if (pathname == "/") {//默认打开页面
pathname = "index.html";
}
//现在数据可以打印出去 但是文件的类型不一致 text/html text/css text/javascript 等等不一致
//根据后缀名 确认类型
let hname = pathmodule.extname(pathname);//取后缀名
let extname = mime[hname];
//利用反编译配置响应头
res.writeHead(200, { "Content-Type": `${extname};charset=utf-8` });
fs.readFile("static/" + pathname, (err, data) => { //根据目录找到对应的文件
if (err) {
throw err;
}
res.write(data);
res.end();
});
}
}
因篇幅问题不能全部显示,请点此查看更多更全内容