前幾天說以了下Node.js的模塊化,這裏再次說一下爲何Node.js中須要模塊化html
JavaScript的侷限性在後臺開發語言中,好比Java、C#。他們都是隱含模塊化的,Node.js默認幫咱們提供了模塊化這種機制。 在服務器端,咱們想要使用底層的一些功能須要導入一些「包」來對其操做,好比操做文件、網絡須要導入對應的包。其它語言中都是基於類來實現的模塊化的思想,使用類來組織文件和文件之間的關聯。 而Node.js中使用的是JavaScript語言,ECMAScript僅僅規定了基本的語法的書寫,並無規定文件之間 關聯,也就是說每一個js文件之間是獨立的,Node.js已經幫咱們實現了js文件之間的關聯(模塊化) Node.js中的模塊化是基於CommonJS規範的
那麼接下來看一下核心模塊node
今天接觸到的核心模塊:git
path模塊github
basename() 獲取文件名+後綴web
path.basename("/foo/hello/world/123.html") //第二個參數,去掉獲取的文件名中的相同部分 path.basename("c:/foo/hello/world/123.html",".html")
dirname() 獲取目錄數據庫
path.dirname("/foo/hello/world/123.html")
extname() 獲取文件的擴展名(尾綴名)windows
path.extname("/foo/hello/world/123.html")
join() 合併路徑服務器
var p1 = "c://abc/xyz"; var p2 = "/123/456"; console.log(path.join(p1,p2));
parse() 把路徑轉換爲一個對象網絡
path.parse("c:\\home\\hello\\world\\123.html") { root: 'c:/', dir: 'c://home/hello/world', base: '123.html', ext: '.html', name: '123' }
format() 把一個路徑對象轉換成一個路徑字符串模塊化
var obj = { root: 'c:\\', dir: 'c:\\home\\hello\\world', base: '123.html', ext: '.html', name: '123' } console.log(path.format(obj));
delimiter 環境變量的分隔符,能夠跨平臺 windows下是; 其它平臺 :
path.sep 路徑的分隔符 windows下是\ 其它下是/
isAbsolute() 是不是絕對路徑
var uri = "http://www.baidu.com:8080/images/1.jpgversion=1.0&time=1123#abcd"; console.log(url.parse(uri));
format() 把路徑對象轉換成字符串
var obj = { protocol: 'http:', slashes: true, auth: null, host: 'www.baidu.com:8080', port: '8080', hostname: 'www.baidu.com', hash: '#abcd', search: '?version=1.0&time=1123', query: 'version=1.0&time=1123', pathname: '/images/1.jpg', path: '/images/1.jpg?version=1.0&time=1123', href: 'http://www.baidu.com:8080/images/1.jpg?version=1.0&time=1123#abcd' }; var str = url.format(obj); console.log(str);
querystring模塊
parse() 把參數字符串解析成對象
var obj = querystring.parse("version=1.0&time=123"); console.log(obj);
stringify() 把一個對象轉換成一個字符串
escape() url進行編碼
unescape() url進行解碼
----------------------------------------------------分割線-----------------------------------------------
那麼核心模塊存在哪裏呢,