node.js 的核心模塊

前幾天說以了下Node.js的模塊化,這裏再次說一下爲何Node.js中須要模塊化html


JavaScript的侷限性在後臺開發語言中,好比Java、C#。他們都是隱含模塊化的,Node.js默認幫咱們提供了模塊化這種機制。 在服務器端,咱們想要使用底層的一些功能須要導入一些「包」來對其操做,好比操做文件、網絡須要導入對應的包。其它語言中都是基於類來實現的模塊化的思想,使用類來組織文件和文件之間的關聯。 而Node.js中使用的是JavaScript語言,ECMAScript僅僅規定了基本的語法的書寫,並無規定文件之間 關聯,也就是說每一個js文件之間是獨立的,Node.js已經幫咱們實現了js文件之間的關聯(模塊化) Node.js中的模塊化是基於CommonJS規範的

  • 沒有模塊系統
  • 系統提供的接口較少,好比:缺乏操做文件、I/O流等經常使用的接口
  • 沒有標準接口,缺乏如web服務器、數據庫等統一接口
  • 缺少管理系統導師JavaScript應用中基本沒

 

  • CommonJS規範
    • Node.js開發之初遵照了CommonJS規範
    • 使JavaScript達到像Java、Python、PHP等語言同樣有開發大型應用的基本能力
    • CommonJS規範規定每個模塊都有一個單獨的做用域
    • CommonJS規範規定每一個模塊對外公佈的成員使用module.exports或者exports
    • 有了模塊化系統以後,Node.js提供了許多系統模塊:文件、Buffer、I/O流、Socket等

 

那麼接下來看一下核心模塊node

  今天接觸到的核心模塊:git

    • path模塊github

      • 導入模塊 var path = require("path");
      • 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() 是不是絕對路徑

 

  • URL模塊
    • 導入模塊var url=requre("url")
    • parse()把字符串的路徑傳換成對象
      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模塊

      • 導入模塊 var querystring = require("querystring");
      • parse() 把參數字符串解析成對象

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

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

escape() url進行編碼

unescape() url進行解碼

 

----------------------------------------------------分割線-----------------------------------------------

那麼核心模塊存在哪裏呢,

  • 核心模塊存儲在node.exe中,當node.exe運行的時候,核心模塊會被加載,require的時候會加載到內存
  • 在github上能夠找到源代碼,lib文件夾下
  • 核心模塊的執行速度比較快
相關文章
相關標籤/搜索