Node.Js的Module System 以及一些經常使用 Module

    Node.Js學習就按照這本書的流程來。image瀏覽器

    在第7章結束與第10章結束時分別本身出一個小項目練練手。Node.Js的入門學習計劃是這樣。安全

    目錄:imageapp

    QQ:1045642972 歡迎來索書以及討論Node.Js。異步


 

Node.Js Demo

    Node.Js官網提供了一個最基本的Demo Code:函數

var http = require('http');
http.createServer(function (req, res) {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Hello World');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');

    運行以後,瀏覽器中輸入URL,結果:image學習

    require('http'); 就是從Node.Js提供的http 這個module中獲取導出的對象,以進行以後的建立偵聽端口的操做。測試


 

Module

    Module System的4個要點:ui

  • 每一個Js文件都映射一個Module。
  • 在每一個Js文件中,均可以經過module這個變量,來直接操做到Module。
  • 導出模塊藉助於module.exports這個變量
  • 導入模塊藉助於require這個全局函數。

    直接上代碼來講明spa

    文件結構:imagePS:因爲Js沒有main(),Node.Js社區中約定將主流程寫在app.js中。操作系統

    utility模塊以下:

var title = "Hello Node";

module.exports = {
    SetTitle : function(titleName){
        title = titleName;
    },
    Output : function () {
        console.log(title);
    }
}

    app.js對於該模塊的測試代碼以下:

var module = require("./utility");

module.SetTitle("Hello CNBLOG");
module.Output();

console.log(module.title);

    結果:

    image

   Node.Js的Module是很是安全的,每一個module只能拿到exports變量出來的東西。


 

Path Module

    提供與文件路徑有關的功能,而且能夠適應操做系統的環境(即Windows的\與Unix的/)。

    DEMO(測試環境爲Windows):

var path = require("path");

console.log(path.normalize("C:/Users/Guan/WebstormProjects/NodeStudy01/app.js"));
//Output:C:\Users\Guan\WebstormProjects\NodeStudy01\app.js

console.log(path.join("C:/Users/Guan/WebstormProjects", "NodeStudy01", "app.js"));
//Output:C:\Users\Guan\WebstormProjects\NodeStudy01\app.js

console.log(path.dirname("C:/Users/Guan/WebstormProjects/NodeStudy01/app.js"));
//Output:C:/Users/Guan/WebstormProjects/NodeStudy01

console.log(path.basename("C:/Users/Guan/WebstormProjects/NodeStudy01/app.js"));
//Output:app.js

console.log(path.extname("C:/Users/Guan/WebstormProjects/NodeStudy01/app.js"));
//Output:.js

 

fs Module

    提供了異步與同步兩種模式讀寫文件的功能。

    DEMO:

var fs = require('fs');

fs.writeFileSync('testA.txt', "Hello Node");
console.log(fs.readFileSync('testA.txt').toString());

fs.writeFile('testB.txt', "Hello Node", function () {
    console.log(fs.readFileSync('testB.txt').toString());
});

 

os Module

    該模塊提供了獲取當前系統OS有關的功能,如:獲取CPU核數,內存餘量等。

    DEMO:

console.log('Total Memory', os.totalmem(), 'Bytes');
console.log('Available Memory', os.freemem() , 'Bytes');
console.log('This machine has', os.cpus().length, 'CPUs');

 

    固然,Module還有不少,具體參考Node.Js官網的API DOC。

相關文章
相關標籤/搜索