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

node.js中module.exports與exports用法上的區(qū)別

 更新時間:2016年09月02日 08:57:04   作者:愛可不可愛  
Node.js 引入了模塊(Module)概念,一個模塊可以通過module.exports 或 exports 將函數(shù)、變量等導(dǎo)出,以使其它 JavaScript 腳本通過require() 函數(shù)引入并使用。那么node.js中module.exports與exports有什么區(qū)別呢?下面小編給大家解答下

 Node.js 引入了模塊(Module)概念,一個模塊可以通過module.exports 或 exports 將函數(shù)、變量等導(dǎo)出,以使其它 JavaScript 腳本通過require() 函數(shù)引入并使用?!?br />

module.exports 初始值為一個空對象 {},所以 exports 初始值也是 {},exports 是指向的 module.exports 的引用,在模塊內(nèi)部大概是這樣:

exports = module.exports = {};

舉個栗子,在node.js中創(chuàng)建模塊非常簡單,一個文件就是一個模塊,所以我們創(chuàng)建一個name.js文件就創(chuàng)建了一個模塊name.js,使用exports和require對象對外提供接口和引用模塊。

name.js

var myName=function(){
var name='AmberYLopez';
console.log(name);
};
exports.myName=myName;

這樣在使用的時候需要這樣

app.js

var name=require('./name');

如果我們創(chuàng)建的name.js文件是使用module.exports和require對象對外提供接口和引用模塊。

name.js 

var myName=function(){
var name='AmberYLopez';
console.log(name);
};
module.exports=myName;

app.js

var name=require('./name');

exports 賦值其實是給 module.exports 這個空對象添加myName屬性而已,為什么exports要使用添加屬性的方式,而不用exports=myName?

exports是引用 module.exports的值。exports 被改變的時候,module.exports不會被改變,而模塊導(dǎo)出的時候,真正導(dǎo)出的執(zhí)行是module.exports,而不是exports。

如果將name.js改為

var myName=function(){
var name='AmberYLopez';
console.log(name);
};
exports=myName;

app.js

var name=require('./name');<br>console.log(name);

運行會報錯。因為,前面是通過給 exports 添加屬性,而現(xiàn)在對 exports 指向的內(nèi)存做了修改,exports 和 module.exports 不再指向同一塊內(nèi)存,即 module.exports 指向的那塊內(nèi)存并沒有做任何改變,仍然為一個空對象 {},所以會報錯。

相關(guān)文章

  • 利用Node.js對文件進行重命名

    利用Node.js對文件進行重命名

    最近工作中遇到了對文件進行重命名的需求,后通過node.js實現(xiàn)了,所以下面這篇文章主要給大家介紹了利用Node.js對文件進行重命名的相關(guān)資料,文中介紹的非常詳細,對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。
    2017-03-03
  • NodeJS配置HTTPS服務(wù)實例分享

    NodeJS配置HTTPS服務(wù)實例分享

    本文給大家分享的是在nodejs中配置https服務(wù)的方法和具體的示例,非常的詳細,有需要的小伙伴可以來參考下
    2017-02-02
  • NodeJs實現(xiàn)定時任務(wù)的示例代碼

    NodeJs實現(xiàn)定時任務(wù)的示例代碼

    本篇文章主要介紹了NodeJs實現(xiàn)定時任務(wù)的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • nodejs命令行參數(shù)處理模塊commander使用實例

    nodejs命令行參數(shù)處理模塊commander使用實例

    這篇文章主要介紹了nodejs命令行參數(shù)處理模塊commander使用實例,commander是一個非常高大上的令行參數(shù)處理模塊,需要的朋友可以參考下
    2014-09-09
  • 深入分析node.js的異步API和其局限性

    深入分析node.js的異步API和其局限性

    這篇文章首先給大家介紹了為什么要用異步API,其次node.js異步api在使用過程有一些什么樣的限制呢,對于這個問題我們下面來看看這篇關(guān)于node.js異步的介紹分析吧,有需要的可以參考借鑒。
    2016-09-09
  • 測試驅(qū)動ChatGPT編程示例詳解

    測試驅(qū)動ChatGPT編程示例詳解

    這篇文章主要為大家介紹了測試驅(qū)動ChatGPT編程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • 從零學(xué)習(xí)node.js之mysql數(shù)據(jù)庫的操作(五)

    從零學(xué)習(xí)node.js之mysql數(shù)據(jù)庫的操作(五)

    因為接觸Node.JS已經(jīng)有一段時間了,最近粗略的研究了一下node.js操作數(shù)據(jù)庫的包,覺得node.js連接數(shù)據(jù)庫不錯。下面這篇文章主要給大家介紹了node.js之mysql數(shù)據(jù)庫操作的相關(guān)資料,需要的朋友可以參考下。
    2017-02-02
  • Node.js中使用Log.io在瀏覽器中實時監(jiān)控日志(等同tail -f命令)

    Node.js中使用Log.io在瀏覽器中實時監(jiān)控日志(等同tail -f命令)

    這篇文章主要介紹了Node.js中使用Log.io在瀏覽器中實時監(jiān)控日志,Log.io等同于tail -f命令,但更強大,需要的朋友可以參考下
    2014-09-09
  • Node.js調(diào)用java之node-java問題

    Node.js調(diào)用java之node-java問題

    這篇文章主要介紹了Node.js調(diào)用java之node-java問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • NodeJS遠程代碼執(zhí)行

    NodeJS遠程代碼執(zhí)行

    這篇文章主要介紹了NodeJS遠程代碼執(zhí)行方法的相關(guān)資料,需要的朋友可以參考下
    2016-08-08

最新評論