亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

node.js 的核心模塊

Original 2016-11-07 10:40:31 568
abstract:在后臺開發(fā)語言中,比如Java、C#。他們都是隱含模塊化的,Node.js默認(rèn)幫我們提供了模塊化這種機(jī)制。  在服務(wù)器端,我們想要使用底層的一些功能需要導(dǎo)入一些“包”來對其操作,比如操作文件、網(wǎng)絡(luò)需要導(dǎo)入對應(yīng)的包。其它語言中都是基于類來實現(xiàn)的模塊化的思想,使用類來組織文件和文件之間的關(guān)聯(lián)。  而Node.js中使用的是JavaScript語言,ECMAScript僅僅規(guī)定了

在后臺開發(fā)語言中,比如Java、C#。他們都是隱含模塊化的,Node.js默認(rèn)幫我們提供了模塊化這種機(jī)制。  在服務(wù)器端,我們想要使用底層的一些功能需要導(dǎo)入一些“包”來對其操作,比如操作文件、網(wǎng)絡(luò)需要導(dǎo)入對應(yīng)的包。其它語言中都是基于類來實現(xiàn)的模塊化的思想,使用類來組織文件和文件之間的關(guān)聯(lián)。  而Node.js中使用的是JavaScript語言,ECMAScript僅僅規(guī)定了基本的語法的書寫,并沒有規(guī)定文件之間 關(guān)聯(lián),也就是說每個js文件之間是獨立的,Node.js已經(jīng)幫我們實現(xiàn)了js文件之間的關(guān)聯(lián)(模塊化)  Node.js中的模塊化是基于CommonJS規(guī)范的
JavaScript的局限性

  • 沒有模塊系統(tǒng)

  • 系統(tǒng)提供的接口較少,比如:缺少操作文件、I/O流等常用的接口

  • 沒有標(biāo)準(zhǔn)接口,缺少如web服務(wù)器、數(shù)據(jù)庫等統(tǒng)一接口

  • 缺乏管理系統(tǒng)導(dǎo)師JavaScript應(yīng)用中基本沒

  • CommonJS規(guī)范

  • Node.js開發(fā)之初遵守了CommonJS規(guī)范

  • 使JavaScript達(dá)到像Java、Python、PHP等語言一樣有開發(fā)大型應(yīng)用的基本能力

  • CommonJS規(guī)范規(guī)定每一個模塊都有一個單獨的作用域

  • CommonJS規(guī)范規(guī)定每個模塊對外公布的成員使用module.exports或者exports

  • 有了模塊化系統(tǒng)之后,Node.js提供了許多系統(tǒng)模塊:文件、Buffer、I/O流、Socket等

那么接下來看一下核心模塊

今天接觸到的核心模塊:

  • path模塊

  • 導(dǎo)入模塊 var path = require("path");

  • basename() 獲取文件名+后綴

path.basename("/foo/hello/world/123.html")    //第二個參數(shù),去掉獲取的文件名中的相同部分
path.basename("c:/foo/hello/world/123.html",".html")

dirname() 獲取目錄

path.dirname("/foo/hello/world/123.html")

extname() 獲取文件的擴(kuò)展名(尾綴名)

path.extname("/foo/hello/world/123.html")

join() 合并路徑

var p1 = "c://abc/xyz";     var p2 = "/123/456";
console.log(path.join(p1,p2));

parse() 把路徑轉(zhuǎn)換為一個對象

path.parse("c:\\home\\hello\\world\\123.html")
{ root: 'c:/',
    dir: 'c://home/hello/world',
    base: '123.html',
    ext: '.html',
    name: '123' }

format() 把一個路徑對象轉(zhuǎn)換成一個路徑字符串

 var obj = { root: 'c:\\',
      dir: 'c:\\home\\hello\\world',
      base: '123.html',
      ext: '.html',
      name: '123' }
  console.log(path.format(obj));

delimiter 環(huán)境變量的分隔符,可以跨平臺 windows下是; 其它平臺 :

path.sep 路徑的分隔符 windows下是\ 其它下是/

isAbsolute() 是否是絕對路徑

URL模塊

  • 導(dǎo)入模塊 var querystring = require("querystring");

  • parse() 把參數(shù)字符串解析成對象

var obj = querystring.parse("version=1.0&time=123");
  console.log(obj);

format() 把路徑對象轉(zhuǎn)換成字符串

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模塊

  • 導(dǎo)入模塊 var querystring = require("querystring");

  • parse() 把參數(shù)字符串解析成對象

var obj = querystring.parse("version=1.0&time=123");
  console.log(obj);

stringify() 把一個對象轉(zhuǎn)換成一個字符串

escape() url進(jìn)行編碼

unescape() url進(jìn)行解碼

那么核心模塊存在哪里呢,

核心模塊存儲在node.exe中,當(dāng)node.exe運行的時候,核心模塊會被加載,require的時候會加載到內(nèi)存

在github上可以找到源代碼,lib文件夾下

核心模塊的執(zhí)行速度比較快


Release Notes

Popular Entries