@Wangww0925
2019-08-07T08:03:13.000000Z
字数 3594
阅读 300
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 下载
目录
projectcssa.cssb.cssimg1.jpgjsa.jsindex.htmldemo.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日