這應該是基礎的內容了, 但是寫 vue 寫多了(ES6),慢慢的..我居然老想用ES6的語法來寫nodejs(CommonJS)...,記錄一下
首先做個實現就知道是怎麼回事了
1.就寫這一行代碼,運行查看結果
console.log(module);
運行結果
{
id: '.',
exports: {},
parent: null,
filename: 'C:\\Users\\Administrator\\Desktop\\study\\index.js',
loaded: false,
children: [],
paths: [
'C:\\Users\\Administrator\\Desktop\\study\\node_modules',
'C:\\Users\\Administrator\\Desktop\\node_modules',
'C:\\Users\\Administrator\\node_modules',
'C:\\Users\\node_modules',
'C:\\node_modules'
]
}
- 我們可以會得到這樣一個對象, 那麼
module
是哪裏來的?
在 nodejs 中, 一個模塊就是一個閉包, 大概是這樣一個結構, 所以我們不需要定義就可以直接使用modeul
和exports
(function (module, exports) {
// code
})();
區別
在 console.log(module)
運行結果的代碼中,可以看到 exports
是 module
的一個屬性
- 如果使用
module.exports = {}
這是將系統的exports
重新賦值了
module.exports = {
name: 'jack',
message: 'hello world'
};
- 如果使用
exports.aaa = 'bbb'
這是將 bbb 賦值給exports
的aaa
屬性
exports.fun1= () => {
console.log("hello");
}
exports.fun2= () => {
console.log("world");
}
作者:鍵來i
鏈接:https://www.jianshu.com/p/089b48df2d9b
來源:簡書
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。