NodeJs學習---模塊

最近在學習NodeJs,基礎知識看了看,而後就跑去看Express了,可是真正動手寫代碼的時候下手仍是不夠穩準狠。這說明基礎知識是不行嘀,因此再返回來從新學習。node

NodeJs的項目中,最常使用的就是模塊,模塊的聲明、模塊的調用。可是模塊究竟是個啥?聲明都有哪些方式,調用都有哪些方式呢?直入正題,且看下文學習

先來個最簡單的:測試

//main.jsui

 //main.js
 var example = require('./example');
 example.show();

//example.jsspa

//example.js
function show(){
    console.log("Hi,I'm example");
}
exports.show = show;

ok,很簡單吧,運行:node main.jscode

結果顯示調用輸出了example.js中的show()方法。對象

仔細看代碼,你會發現,main.js中首先引入了example.js這個模塊,而後賦值給example這個變量,調用的時候是example.show(),也就是說example的屬性中有show()這個方法。事實上是這樣嗎,咱們測試一下,改寫代碼接口

main.jsio

//main.js
var example = require('./example');
example.show(); 
console.log(example); //增長一行輸出

結果:console

看最後一行,輸出的變量example是個{key:value }這樣子的傢伙,這是什麼?是個Object唄!

整理一下

聲明:exports       栗子:exports.xxx = yyy;   

調用:require       栗子:var xxx = require('yyy'); //得到的是一個{....}這樣子的Object


ok,你們看完上面應該會基本的使用方法了。

那咱們在example.js中能夠再寫幾個function,而後exports.xxx = 那個function,main.js中調用。雖然這麼寫沒什麼問題,可是這裏仍是建議一個js文件只作一個模塊使用,清晰明瞭一看項目結構就知道功能,這樣不是更好麼。


繼續,如今換一種寫法

//example.js

//example.js
module.exports = function(){
    console.log("Hi,I'm example");
}

//main.js

//main.js
var example = require('./example');
example.show();

直接運行看結果:

報錯了吧!show()是個undefined,說明我們調用的example模塊沒有show()這個屬性。

輸出看看example變量是個啥東東

main.js中增長入直接輸出example的代碼:

console.log(example);

結果:


example變成了Function對象,經過typeof也能夠看到是個function

這說明,咱們經過module.exports = function(){...} 是直接把一個對象封裝成了模塊,那麼經過require獲取這個模塊的時候也是直接獲得一個對象。

那麼,怎麼用這個模塊呢?看代碼:

//main.js
var example = require('./example');
var _example = new example();

結果:

Bingo!

總結一下:

    方式1 : 建立--- exports.xxx = function(){......}

                   使用--- var xxx = require('yyy');

                               xxx.zzz();

    方式2:建立 --- module.exports = function(){......}

                使用 --- var xxx = require('路徑');

                             var yyy = new xxx();


目前能想到的就這麼多,主要的點是:一個是定義在exports對象上的方法,另外一個是接口對象就是要輸出的對象自己。

後續的內容慢慢添加吧,先記錄下來,方便之後複習。

相關文章
相關標籤/搜索