免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
node 學(xué)習(xí)筆記

本文同步自我的個(gè)人博客:http://www.52cik.com/2015/12/04/learn-node-path.html

path 模塊是 node 用于整理、轉(zhuǎn)換、合并路徑的神器,只要是路徑問題,都可以交給它處理。
但它僅僅是處理路徑字符串,而不會(huì)去堅(jiān)持或處理文件。

path.normalize 路徑整理

做項(xiàng)目時(shí),往往都是基于相對(duì)路徑,于是經(jīng)常會(huì)出現(xiàn)類似這樣的路徑 path//upload/../file/./123.jpg。
當(dāng)然這個(gè)是把所有坑都寫到一起了,不過就算這樣的路徑,path.normalize 分分鐘搞定。

var path = require('path');var str = path.normalize('./path//upload/data/../file/./123.jpg');console.log(str); // path/upload/file/123.jpg

path.join 拼接路徑

那些奇葩路徑往往都是自己拼接導(dǎo)致的,如果用一些工具幫助我們處理這,就可以直接得到規(guī)范的路徑了,而且不需要擔(dān)心跨平臺(tái)問題。這里的 path.join 就可以幫助我們生產(chǎn)跨平臺(tái),規(guī)范化的路徑字符串。

var path = require('path');var str = path.join('./path/./', './upload', '/file', '123.jpg');console.log(str); // path/upload/file/123.jpgvar str = path.join('path', 'upload', 'file', '123.jpg');console.log(str); // path/upload/file/123.jpgvar arr = ['path', 'upload', 'file', '123.jpg'];var str = path.join.apply(null, arr);console.log(str); // path/upload/file/123.jpg

這個(gè)方法雖然方便,但是參數(shù)只能是字符串,否則會(huì)拋出錯(cuò)誤(0.10以上版本)。

path.resolve 絕對(duì)路徑

這個(gè)絕對(duì)路徑操作,跟上面的不太一樣,如果你懂命令行 cd 命令,那就秒懂了,否則需要花點(diǎn)時(shí)間多跑幾個(gè)例子才能理解。這次直接上官方例子。

path.resolve('foo/bar', '/tmp/file/', '..', 'a/../subfile');// 返回 /tmp/subfile

相當(dāng)于命令行下的

cd foo/barcd /tmp/file/cd ..cd a/../subfilepwd

他的解析不是在是簡(jiǎn)單的拼接關(guān)系,而是類似 cd 命令的解析了。

path.relative 相對(duì)路徑

有絕對(duì)就有相對(duì),有時(shí)我們有兩個(gè)絕對(duì)路徑, 我們需要從中找出相對(duì)目錄的起源目錄。

path.relative('/data/orandea/test/aaa', '/data/orandea/impl/bbb')// 返回 ../../impl/bbb

path.dirname 文件路徑

根據(jù)一個(gè)文件或目錄得到它所在的目錄路徑,這個(gè)很常用。

var path = require('path');var str = path.dirname('path/upload/file/123.jpg');console.log(str); // path/upload/filevar str = path.dirname(__filename); // 等價(jià)于 __dirnameconsole.log(str, __dirname); // 當(dāng)前文件所在目錄

path.basename 獲取路徑中的文件名

確切的說是返回最后一個(gè)路徑分割后面的文件名,不論是文件還是目錄,第二個(gè)參數(shù)可以忽略文件后綴。

var path = require('path');var str = path.basename('path/upload/file/123.txt.jpg');console.log(str); // 123.txt.jpgvar str = path.basename('path/upload/file/123.txt.jpg', '.jpg');console.log(str); // 123.txtvar str = path.basename('path/upload/file/123.txt.jpg', '.txt.jpg');console.log(str); // 123var str = path.basename('path/upload/file/');console.log(str); // file

代碼都是簡(jiǎn)單易懂的。

path.extname 文件后綴

確切說,就是返回最后一個(gè) . 之后的字符串,沒有則返回空。

var path = require('path');var str = path.extname('path/upload/file/123.txt.jpg');console.log(str); // '.jpg'var str = path.extname('path/upload/file/123.txt');console.log(str); // '.txt'var str = path.extname('path/upload/file/');console.log(str); // ''

path.parse 解析路徑

把一個(gè)路徑解析為一個(gè) {root:'', dir:'', base:'', ext:'', name:''} 這樣的對(duì)象。
有時(shí)候要獲取文件名,文件后綴,文件目錄,這樣到省事了,直接搞定。上官方例子。

path.parse('/home/user/dir/file.txt')// returns{    root : "/",    dir : "/home/user/dir",    base : "file.txt",    ext : ".txt",    name : "file"}// windowspath.parse('C:\\path\\dir\\index.html')// returns{    root : "C:\\",    dir : "C:\\path\\dir",    base : "index.html",    ext : ".html",    name : "index"}

path.format 生成路徑

正好跟 path.parse 相反,這個(gè)則是根據(jù) {root:'', dir:'', base:'', ext:'', name:''} 這樣的對(duì)象來生成字符串。上官方例子。

path.format({    root : "/",    dir : "/home/user/dir",    base : "file.txt",    ext : ".txt",    name : "file"})// returns'/home/user/dir/file.txt'

其他屬性

還有一些屬性,如 path.sep 不同平臺(tái)下的文件路徑分隔符,win 是 \\,*nix 則是 /
path.delimiter 字面解釋,這才是分隔符,但這個(gè)往往是環(huán)境變量中出現(xiàn)的,win 是 ;,*nix 則是 :,你們懂的。

還有兩個(gè)奇葩屬性,path.posixpath.win32 他們都包含上面這些方法屬性,前者跨平臺(tái),后者只是win上。
不知道為什么要單獨(dú)搞兩個(gè)這樣的屬性。

好了,爭(zhēng)取每天學(xué)習(xí)一點(diǎn)基礎(chǔ),只有把這些基礎(chǔ)知識(shí)梳理一遍,才能更好的掌握 node。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
js 壓縮圖片 上傳
大牛筆記:node.js基礎(chǔ)第二課時(shí)
WordPress技巧:自定義上傳路徑和生成文件
WordPress代碼或插件實(shí)現(xiàn) 外鏈圖片 自動(dòng)本地化 – xukzhao blog
php文件上傳類程序代碼
C# 文件上傳類
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服