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

Node.JS中的模塊、exports和module講解

 更新時(shí)間:2023年01月11日 14:49:08   作者:花京院嚯  
這篇文章主要介紹了Node.JS中的模塊、exports和module講解,模塊分為兩類一類是核心模塊一類是文件模塊,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下

模塊

分為兩大類

核心模塊

  • 由node引擎提供的模塊
  • 核心模塊的標(biāo)識(shí)就是模塊的名字
var fs=require("fs");

文件模塊

由用戶自己創(chuàng)建的模塊文件模塊的標(biāo)識(shí)就是文件的路徑(絕對(duì)路徑、相對(duì)路徑),相對(duì)路徑用的更多,相對(duì)路徑使用.或者…開(kāi)頭

在node中有一個(gè)全局對(duì)象global,它的作用和網(wǎng)頁(yè)中window類似,在全局中創(chuàng)建的變量都會(huì)作為global的屬性保存,在全局中創(chuàng)建的函數(shù)會(huì)作為global的方法保存

arguements表示函數(shù)的變量

arguements.callee這個(gè)屬性保存的是當(dāng)前執(zhí)行的函數(shù)對(duì)象

如果在arguments.callee后面+“”,代表拼串,會(huì)把函數(shù)打印出來(lái)

console.log(arguments.callee+"");

當(dāng)node在執(zhí)行模塊中的代碼時(shí),它會(huì)首先在代碼的最頂部,添加如下代碼

function (exports, require, module, __filename, __dirname) {

在代碼的最底部,添加如下代碼

}

實(shí)際上模塊中的代碼都是包裝在一個(gè)函數(shù)中執(zhí)行的,并且在函數(shù)執(zhí)行時(shí),同時(shí)傳遞進(jìn)了5個(gè)實(shí)參

exports:該對(duì)象將變量或函數(shù)暴露到外部

require:函數(shù),用來(lái)引入外部的模塊

module:代表當(dāng)前模塊本身,exports就是module的屬性,既可以使用exports到處,也可以使用module.exports導(dǎo)出

console.log(exports);
console.log(module.exports);
console.log(module.exports==exports);

_filename:當(dāng)前模塊的完整路徑

console.log(__filename);

_dirname:當(dāng)前模塊所在文件夾的完整路徑

console.log(__dirname);

helloModule.js

module.exports={
    name:'豬八戒',
    age:28,
    sayName:function(){
        console.log("我是豬八戒");
    }
}

05.module.js

var hello=require("./helloModule");

console.log(hello.name);
console.log(hello.age);
console.log(hello.sayName);

基本數(shù)據(jù)類型

var a=10;
var b=a;
a++;

console.log("a="+a);
console.log("b="+b);

基本數(shù)據(jù)類型的值是相互獨(dú)立的,所以a++后,b不發(fā)生改變

可以從堆棧內(nèi)存中進(jìn)行分析,在存入變量和值后,a的值10和b的值是獨(dú)立的,此時(shí)a的值變化不影響b的值

引用數(shù)據(jù)類型

此時(shí)再看到引用變量

var obj=new Object();
obj.name="孫悟空";
var obj2=obj;
obj2.name="豬八戒";

console.log("obj="+obj.name);
console.log("obj2="+obj2.name);

當(dāng)出現(xiàn)new時(shí),就需要往堆內(nèi)存中存放對(duì)象,棧內(nèi)存中存放變量,對(duì)象沒(méi)有名字,只有內(nèi)存地址(16進(jìn)制地址),變量的值就是地址值,此時(shí)會(huì)有指針指向堆內(nèi)存中的對(duì)象

此時(shí)加入obj.name時(shí),會(huì)加到堆內(nèi)存中的對(duì)象

當(dāng)對(duì)obj2設(shè)置為null,對(duì) obj 沒(méi)有影響

因?yàn)閛bj2改變的是變量,obj2.name改變的是對(duì)象

exports和module.exports的關(guān)系

此時(shí)再轉(zhuǎn)回到module.exports和exports

module.exports改變的是對(duì)象,exports改變的是變量的值,此時(shí)運(yùn)行就會(huì)報(bào)錯(cuò)

通過(guò)exports只能使用.的方式來(lái)向外暴露內(nèi)部變量

exports.xxx=xx;

而module.exports既可以通過(guò).的形式,也可以直接賦值

module.exports.xxx=xx;
//或者
module.exports={...}

通過(guò)exports只能使用.的方式來(lái)向外暴露內(nèi)部變量

exports.xxx=xx;

而module.exports既可以通過(guò).的形式,也可以直接賦值

module.exports.xxx=xx;
//或者
module.exports={...}

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

相關(guān)文章

  • nodejs入門(mén)教程五:連接數(shù)據(jù)庫(kù)的方法分析

    nodejs入門(mén)教程五:連接數(shù)據(jù)庫(kù)的方法分析

    這篇文章主要介紹了nodejs入門(mén)教程之連接數(shù)據(jù)庫(kù)的方法,結(jié)合實(shí)例形式分析了nodejs連接數(shù)據(jù)庫(kù)的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下
    2017-04-04
  • node將對(duì)象轉(zhuǎn)化為query的實(shí)現(xiàn)方法

    node將對(duì)象轉(zhuǎn)化為query的實(shí)現(xiàn)方法

    本文主要介紹了node將對(duì)象轉(zhuǎn)化為query的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • 詳解Node 定時(shí)器

    詳解Node 定時(shí)器

    這篇文章主要介紹了Node 定時(shí)器的相關(guān)知識(shí),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2018-02-02
  • NodeJS使用JWT跨域身份驗(yàn)證方案詳解

    NodeJS使用JWT跨域身份驗(yàn)證方案詳解

    JWT是為了在網(wǎng)絡(luò)應(yīng)用環(huán)境間傳遞聲明而執(zhí)行的一種基于JSON的開(kāi)放標(biāo)準(zhǔn),其組成部分為Header、Payload、Signature.Payload部分才是真正的用戶信息,它是用戶信息經(jīng)過(guò)加密之后生成的字符串,Header和Signature是安全性相關(guān)的部分,只是為了保證token的安全性
    2023-02-02
  • Nest.js中使用HTTP五種數(shù)據(jù)傳輸方式小結(jié)

    Nest.js中使用HTTP五種數(shù)據(jù)傳輸方式小結(jié)

    本文主要介紹了Nest.js中使用HTTP五種數(shù)據(jù)傳輸方式小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • nodejs實(shí)現(xiàn)用戶登錄路由功能

    nodejs實(shí)現(xiàn)用戶登錄路由功能

    這篇文章主要介紹了nodejs中實(shí)現(xiàn)用戶登錄路由功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-05-05
  • 使用vs code開(kāi)發(fā)Nodejs程序的使用方法

    使用vs code開(kāi)發(fā)Nodejs程序的使用方法

    本篇文章主要介紹了使用vs code開(kāi)發(fā)Nodejs程序的使用方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-09-09
  • Node.js開(kāi)發(fā)靜態(tài)資源服務(wù)器

    Node.js開(kāi)發(fā)靜態(tài)資源服務(wù)器

    這篇文章主要為大家介紹了Node.js開(kāi)發(fā)靜態(tài)資源服務(wù)器示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • 一文帶你了解Node.js進(jìn)程管理工具PM2

    一文帶你了解Node.js進(jìn)程管理工具PM2

    Node.js進(jìn)程管理工具PM2是一個(gè)開(kāi)源的工具,用于管理和監(jiān)控Node.js應(yīng)用程序的運(yùn)行,它可以幫助您方便地啟動(dòng)、停止、重啟和監(jiān)視多個(gè)Node.js進(jìn)程,并提供了許多有用的功能,所以本文就和大家一起了解一下PM2,需要的朋友可以參考下
    2023-07-07
  • 詳解Express筆記之動(dòng)態(tài)渲染HTML(新手入坑)

    詳解Express筆記之動(dòng)態(tài)渲染HTML(新手入坑)

    這篇文章主要介紹了詳解Express筆記之動(dòng)態(tài)渲染HTML(新手入坑),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12

最新評(píng)論