@Wangww0925
2019-08-07T08:03:13.000000Z
字数 3594
阅读 228
NodeJs
resolve() - 绝对路径
normalize() - 格式化路径
join() - 路径拼接
format() - 把对象拼接成路径
parse() - 把路径转换为对象
dirname() - 获取文件所在的目录
basename() - 获取文件名【第二参数忽略文件后缀名,即获取文件的前缀名】
extname() - 获取文件的后缀名【如果文件没有后缀名,返回一个空】
isAbsolute() -
relative() -
toNamespacedPath() -
sep - '\\'
delimiter - ';'
win32 - [Circular]
posix {} - object ,
_makeLong() -
var path = require("path");
var str = path.resolve("aa.js");
console.log(str); // D:\node\aa.js
var path = require("path");
var str = path.resolve("aa/bb","cc/dd","../ee");
console.log(str); // D:\node\aa\bb\cc\ee
var path = require("path");
var str = path.normalize("./aa/bb//cc/../dd/index.html");
console.log(str); // aa\bb\dd\index.html
var path = require("path");
var str = path.join("./aa","cc","../dd/","index.html");
console.log(str); // aa\dd\index.html
var path = require("path");
var str = path.join("path","upload","aa","1.jpg");
console.log(str); //path\upload\aa\1.jpg
var path = require("path");
var str = path.format({
dir: '/aa/bb/cc/d',
base: 'index.html',
name: 'index' });
console.log(str); // /aa/bb/cc/d\index.html
var path = require("path");
var str = path.parse("/aa/bb/cc/dd/index.html");
console.log(str);
/**
{
root: '/',
dir: '/aa/bb/cc/dd',
base: 'index.html',
ext: '.html',
name: 'index'
}
*/
var path = require("path");
var str = path.dirname("aa/index.html");
console.log(str); // aa
获取文件名
var path = require("path");
var str = path.basename("D:/NodeJs_03/aa.js");
console.log(str); // aa.js
文件的前缀名
var path = require("path");
var str = path.basename("D:/NodeJs_03/aa.txt.js", ".js");
console.log(str); // aa.txt
var path = require("path");
var str = path.extname("D:/NodeJs_03/aa.txt.js");
console.log(str); // .js
path.extname()
常配合 url.parse(req.url).pathname
使用 (一)demo_path.extname.zip-42.6kB 下载
目录
project
css
a.css
b.css
img
1.jpg
js
a.js
index.html
demo.js
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<link rel="stylesheet" href="./css/a.css">
<link rel="stylesheet" href="./css/b.css">
</head>
<body>
<h1>测试页面</h1>
<p>hello world</p>
<img src="./img/1.jpg" alt="">
<script src="./js/a.js"></script>
</body>
</html>
node执行的 demo.js文件
var http = require("http");
var fs = require("fs");
var url = require("url");
var path = require("path");
http.createServer((req,res)=>{
var pathname = url.parse(req.url).pathname;
var extname = path.extname(pathname);
//处理小图标
if(pathname == "/favicon.ico"){
return;
}
if(pathname == "/"){
fs.readFile("./project/index.html",(err,data)=>{
res.writeHead(200,{'Content-Type':"text/html;charset=utf-8"});
res.end(data);
})
return
}
fs.readFile("./project/" + pathname,(err,data)=>{
getMime(extname,function(mime){
res.writeHead(200,{"Content-Type": mime + ";charset=utf-8"});
res.end(data);
})
})
}).listen(8081);
// 获取后缀名匹配的Content-Type类型
function getMime(extname,callback){
fs.readFile("./mime.json",(err,data)=>{
var obj = JSON.parse(data);
callback(obj[extname]);
})
}
效果图:
主要代码: 具体看demo
var pathname = url.parse(req.url).pathname;
var extname = path.extname(pathname);
fs.readFile("./project/" + pathname,(err,data)=>{
getMime(extname,function(mime){
res.writeHead(200,{"Content-Type": mime + ";charset=utf-8"});
res.end(data);
})
})
// 获取后缀名匹配的Content-Type类型
function getMime(extname,callback){
fs.readFile("./mime.json",(err,data)=>{
var obj = JSON.parse(data);
callback(obj[extname]);
})
}
作者 wendy
2019 年 1月 21日