欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Node.js?中的?module.exports?與?exports區(qū)別介紹

 更新時間:2022年09月13日 14:34:52   作者:Chrislinlin  
這篇文章主要介紹了Node.js中的module.exports與exports區(qū)別介紹,每個模塊中都有module對象,存放了當(dāng)前模塊相關(guān)的信息,更多相關(guān)內(nèi)容需要的朋友可以參考一下

介紹

  • module:每個模塊中都有 module 對象,存放了當(dāng)前模塊相關(guān)的信息;
  • module.exports:模塊導(dǎo)出的內(nèi)容;
  • exports:默認(rèn)情況下,exports 和 module.exports 指向同一個對象。

示例

test.js

console.log('module', module)
console.log('module.exports', module.exports)
console.log('exports', exports)
console.log('module.exports === exports', module.exports === exports)

控制臺執(zhí)行 node test.js,打印日志如下:

module Module {
  id: '.',
  path: 'E:\lin\webpack-learning\src\cjs\demo1',
  exports: {},
  filename: 'E:\lin\webpack-learning\src\cjs\demo1\test.js',
  loaded: false,
  children: [],
  paths: [
    'E:\lin\webpack-learning\src\cjs\demo1\node_modules',
    'E:\lin\webpack-learning\src\cjs\node_modules',
    'E:\lin\webpack-learning\src\node_modules',
    'E:\lin\webpack-learning\node_modules',
    'E:\lin\node_modules',
    'E:\node_modules'
  ]
}
module.exports {}
exports {}
module.exports === exports true

從源碼中理解

github.com/nodejs/node…

const exports = this.exports;
const thisValue = exports;
const module = this;

說明:exports 是 module.exports 的引用

通過示例理解

示例一

test1.js

exports.name = 'lin';
module.exports.age = 18;

console.log('module.exports', module.exports)
console.log('exports', exports)
console.log('module.exports === exports', module.exports === exports)

index.js

const test = require('./test1')
console.log("test", test);

控制臺執(zhí)行 node index.js,打印日志如下:

module.exports { name: 'lin', age: 18 }
exports { name: 'lin', age: 18 }
module.exports === exports true 
test { name: 'lin', age: 18 }

畫圖說明:

示例二

test2.js

module.exports.name = 'lin'
exports = {
  name: 'myName',
  age: 6
}
console.log('module.exports', module.exports)
console.log('exports', exports)
console.log('module.exports === exports', module.exports === exports)

index.js 改為引入 test2.js 模塊

const test = require('./test2')
console.log("test", test);

控制臺執(zhí)行 node index.js打印日志如下:

module.exports { name: 'lin' }
exports { name: 'myName', age: 6 }
module.exports === exports false
test { name: 'lin' }

畫圖說明:

示例三

test3.js

module.exports = {
  name: 'lin',
  age: 18
}

exports.name = "myName"
console.log('module.exports', module.exports)
console.log('exports', exports)
console.log('module.exports === exports', module.exports === exports)

index.js 改為引入 test3.js 模塊

const test = require('./test3')
console.log("test", test);

控制臺執(zhí)行 node index.js,打印日志如下:

module.exports { name: 'lin', age: 18 }
exports { name: 'myName' }
module.exports === exports false
test { name: 'lin', age: 18 }  

畫圖說明:

示例四

test4.js

exports = {
  name: 'lin',
  age: 18
}
module.exports = exports
module.exports.job = 'FE'
console.log('module.exports', module.exports)
console.log('exports', exports)
console.log('module.exports === exports', module.exports === exports)

index.js 改為引入 test4.js 模塊

const test = require('./test4')
console.log("test", test);

控制臺執(zhí)行 node index.js打印日志如下:

module.exports { name: 'lin', age: 18, job: 'FE' }
exports { name: 'lin', age: 18, job: 'FE' }
module.exports === exports true
test { name: 'lin', age: 18, job: 'FE' }

畫圖說明:

小結(jié)

  • exports 是 module.exports 的引用;
  • 對 exports 和 module.exports 賦值時要格外注意,明確模塊導(dǎo)出的值;
  • 使用 require() 導(dǎo)入模塊 A 時,導(dǎo)入的結(jié)果是模塊 A 中 module.exports 指向的值。

到此這篇關(guān)于Node.js 中的 module.exports 與 exports區(qū)別介紹的文章就介紹到這了,更多相關(guān)Node.js exports內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Node.JS發(fā)送http請求批量檢查文件中的網(wǎng)頁地址、服務(wù)是否有效可用

    Node.JS發(fā)送http請求批量檢查文件中的網(wǎng)頁地址、服務(wù)是否有效可用

    這篇文章主要介紹了Node.JS發(fā)送http請求批量檢查文件中的網(wǎng)頁地址、服務(wù)是否有效可用,本文通過實例代碼文字說明給大家講解的非常詳細,需要的朋友參考下
    2019-11-11
  • 用Node提供靜態(tài)文件服務(wù)的方法

    用Node提供靜態(tài)文件服務(wù)的方法

    這篇文章主要介紹了用Node提供靜態(tài)文件服務(wù)的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • Ubuntu22.04系統(tǒng)下升級nodejs到v18版本

    Ubuntu22.04系統(tǒng)下升級nodejs到v18版本

    ubuntu默認(rèn)安裝的nodejs版本比較老,要安裝到最新的,下面這篇文章主要給大家介紹了關(guān)于Ubuntu22.04系統(tǒng)下升級nodejs到v18版本的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-06-06
  • Nodejs libuv運行原理詳解

    Nodejs libuv運行原理詳解

    在本篇文章里小編給大家整理的是關(guān)于Nodejs libuv運行原理以及相關(guān)知識點,有需要的朋友們可以學(xué)習(xí)下。
    2019-08-08
  • 從零開始在webstorm配置nodejs

    從零開始在webstorm配置nodejs

    WebStorm是作為JS開發(fā)IDE存在的,并且支持流行的Node.js以及JQuery等js框架,下面這篇文章主要給大家介紹了關(guān)于如何從零開始在webstorm配置nodejs的相關(guān)資料,需要的朋友可以參考下
    2024-08-08
  • 用C/C++來實現(xiàn) Node.js 的模塊(二)

    用C/C++來實現(xiàn) Node.js 的模塊(二)

    上篇文章的主要內(nèi)容講訴了用C/C++來實現(xiàn) Node.js 的模塊,本文更深一步繼續(xù)探討這個問題,有需要的朋友可以參考下
    2014-09-09
  • 20行代碼簡單實現(xiàn)koa洋蔥圈模型示例詳解

    20行代碼簡單實現(xiàn)koa洋蔥圈模型示例詳解

    這篇文章主要為大家介紹了20行代碼簡單實現(xiàn)koa洋蔥圈模型示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • 解決npm?run?serve啟動報錯npm?ERR?Missing?script:"serve"

    解決npm?run?serve啟動報錯npm?ERR?Missing?script:"serve&q

    這篇文章主要給大家介紹了關(guān)于解決npm?run?serve啟動報錯npm?ERR?Missing?script:"serve"的相關(guān)資料,這是最近開發(fā)中遇到的一個問題,文中通過圖文將解決辦法介紹的非常詳細,需要的朋友可以參考下
    2023-01-01
  • 如何用nodejs搭建代理服務(wù)器

    如何用nodejs搭建代理服務(wù)器

    這篇文章主要介紹了如何用nodejs搭建代理服務(wù)器,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Node.js實現(xiàn)簡單聊天服務(wù)器

    Node.js實現(xiàn)簡單聊天服務(wù)器

    Node.js 是一個基于Chrome JavaScript運行時建立的一個平臺, 用來方便地搭建快速的,易于擴展的網(wǎng)絡(luò)應(yīng)用,今天我們來探討下,如何使用node.js實現(xiàn)簡單的聊天服務(wù)器
    2014-06-06

最新評論