4_Node模塊系統(tǒng)

[TOC]

Node.js模塊系統(tǒng)

為了讓Node的文件可以相互調(diào)用,Node提供了一個簡單的模塊系統(tǒng)
模塊是Node應用程序的基本組成部分,文件和模塊是一一對應的,一個Node文件就是一個模塊,這個文件可能是js文件,也可能是json文件等

1.創(chuàng)建模塊

一個Node js文件就是一個模塊,所以我們創(chuàng)建一個modules1.js 的文件就是創(chuàng)建了一個模塊。若要提供當前模塊給另外模塊使用,我們需要將文件導出

// 第一種:
exports.a=function(){
    console.log('這是我的第一個模塊');
}
exports.b=function(){
    console.log(2);
}
exports.c=Math.PI;
exports.d={
    un:123,
    pw:234,
    sayHi:function(){
        console.log('qwer');
    }
}

以上實例中,modules1.js通過exports對象把a,b,c,d作為模塊的訪問接口;
我們也可以使用另外一種方式創(chuàng)建導出模塊:

// 第二種:
class A{
    constructor(name,age){
        this.name=name;
        this.age=age;
    }
    sayHi(){
        console.log('我叫'+this.name+',我今年'+this.age);
    }
}
class B extends A{
    constructor(name,age,klass){
        super(name,age);
        this.klass=klass;
    }
    sayHi(){
        super.sayHi();
        console.log('我是的'+this.klass+'學生');
    }
}
module.exports={Person:A,Student:B};
// module.exports={A,B};
// module.exports=A;
// module.exports=function(){}

新建一個模塊modules3.js,并且給module.exports賦值(賦值的類型可以是變量或對象或函數(shù))的形式,同時導出模塊中的class A和class B;使用這種方式也可以導出單個函數(shù)或類,均以賦值的形式使用。
相較于第一種方式唯一的變化是使用module.exports=xx代替了exports.xx=function(){};我們推薦大家使用第二種方式,它可以隱藏原有成員變量或成員函數(shù)的名稱,統(tǒng)一導出

2.引入,使用自定義模塊

再創(chuàng)建一個modules2.js 的文件(第二個模塊),并且在第二個模塊中引入模塊,并使用。

var mod1=require('./modules1');//引入模塊
// 使用modules1模塊中提供的訪問接口
mod1.a();
console.log(mod1.c);

在modules2.js模塊中通過require('./modules1')加載modules1模塊,然后可以直接訪問modules1模塊中exports對象的成員函數(shù)。

3.require文件加載

require方法接受以下一種形式的參數(shù)

  • http,fs,path等,原生模塊
  • ./mod 或者 ../mod, 相對路徑的文件模塊
  • /module/a, 絕對路徑的模塊
require('http');//原生模塊
require('./mod')//自定義模塊的引入
require('/module/a')// 絕對路徑的模塊
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容