凡是玩弄nodejs的人,都明白,每個模塊都有exports、module、require、__filename、__dirname的方法javascript
清楚瞭解方法的用法後,玩轉node就等於清楚了平常講話的內容java
(function(exports,require,module,__filename,__dirname){ //打印一出,全部模塊的類型和值一目瞭然 console.log("exports:",exports); console.log("__dirname:",__dirname); console.log("__filename:",__filename); console.log("require:",require); console.log("module:",module); })(exports,require,module,__filename,__dirname);
1、__filenamenode
3、exportsurl
4、modulespa
5、requirecode
1、__filename對象
*當前模塊的文件路徑:解析後的絕對路徑blog
//輸出當前的絕對路徑 console.log(__filename);
2、__dirnameip
*存放當前模塊的文件夾路徑
//輸出存放當前模塊的文件夾名稱 console.log(__dirname);
3、exports
*能夠用來建立模塊,是一個對於module.exports更加簡短的引用形式。能夠看出,module是exports的父親,要是你是這麼想的話,你會看不到明天的太陽,嗯~,暫且不論它們的區別。
//Untitled2.js //官方模塊http、fs、url用過沒,要是沒用過的話,你滾! //量身爲我而作的名片模塊 exports.name="木人子韋一日塵"; exports.qq="2309485575";
//Untitiled1.js //引用建立好的Untitled2模塊 var myCard=require("./Untitled2"); console.log(myCard);
4、module
*基本包含了當前模塊的所有信息,建立模塊的事,module.exports也能辦到,並且這纔是真正的老大,exports不過是module的小弟,好東西都要上交給module大媽的
在有exports例子的前提下,修改Untitled2.js文件,Untitled1.js不變
我把exports和module.exports相互交換,大家親自理解下
//Untitile2.js
//量身爲我而作的名片模塊 //module.exports賦值成類型爲字符串,不爲對象,不受exports建立子集影響 module.exports="我是不會變成對象的"; exports.name="木人子韋一日塵"; exports.qq="2309485575";
//Untitled2.js //量身爲我而作的名片模塊 //module.exports類型想爲對象,並建立子集,鳥都不鳥exports的請求 exports="我要變對象"; module.exports.name="木人子韋一日塵"; module.exports.qq="2309485575";
5、require
辛苦了require,把最簡單的你曬在了最後,這話沒毛病,白話講,它主要是可以在當前模塊引入其它模塊,就是引入模塊,用法好說好說。
/*require()括號裏可填絕對路徑或者相對路徑,只要擬引入路徑是指向後綴 名爲js的文件,node老爺爺都會和善地認同「它是模塊」,至於文件內容合不 合法,暫且不論*/ var myCard=require(__dirname+'/Untitled2.js'); /*若是是寫相對路徑的話,要注意一點,同級文件名稱要改成./統計文件名稱 ,至於還有什麼要注意的,暫且不論*/ console.log(myCard);