W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
module
變量訪問(wèn)當(dāng)前模塊定義。當(dāng)前模塊的導(dǎo)出由 module.exports
變量確定。要導(dǎo)入模塊,請(qǐng)使用全局變量的require函數(shù)。以下代碼在文件 myData.js
中創(chuàng)建一個(gè)函數(shù),以便在應(yīng)用程序的各個(gè)部分重復(fù)使用。要從位于c:/intro/base/myData.js中的文件導(dǎo)出函數(shù),我們只需將其分配給module.exports。
module.exports = function () {
console.log("a function in file myData");
};
為了從文件c:/intro/base/myValue.js使用此函數(shù),使用全局 require
函數(shù)導(dǎo)入myData,并將返回的值存儲(chǔ)在局部變量中。
var myData = require("./myData");
myData(); // logs out : "a function in file myData"
Node.js中的每個(gè)文件都是一個(gè)模塊。要從模塊導(dǎo)出的項(xiàng)目應(yīng)該附加到module.exports變量。module.exports被定義為每個(gè)文件中的一個(gè)新的空對(duì)象。module.exports = {}是隱式存在。
默認(rèn)情況下,每個(gè)模塊導(dǎo)出一個(gè)空對(duì)象, {}
。
console.log(module.exports); // {}
我們可以從模塊中導(dǎo)出多個(gè)變量。實(shí)現(xiàn)這一點(diǎn)的一種方法是創(chuàng)建一個(gè)新的對(duì)象字面量并將其分配給module.exports。在c:/intro/exports/myData1.js我們有:
var a = function () {
console.log("a called");
}; /*from o2fo.com*/
var b = function () {
console.log("b called");
};
module.exports = {
a: a,
b: b
};
在c:/intro/exports/myData2.js我們有:
module.exports.a = function () {
console.log("a called");
};
module.exports.b = function () {
console.log("b called");
};
Node.js幫助我們?yōu)閙odule.export創(chuàng)建一個(gè)名為exports
的別名,而不是每次都鍵入module.exports.something
,你可以簡(jiǎn)單地使用exports.something。
在c:/intro/exports/myData3.js我們有
exports.a = function () {
console.log("a called");
};
exports.b = function () {
console.log("b called");
};
exports
就像任何其他的JavaScript變量一樣。Node.js只是export = module.exports。如果我們添加一些東西,例如,添加myData到exports,也就是exports.myData = 123,因?yàn)镴avaScript變量是引用,我們可以有效地實(shí)現(xiàn)module.exports.myData = 123。以下代碼顯示,所有這些方法從消費(fèi)(導(dǎo)入)角度來(lái)看是等效的。
在c:/intro/exports/app.js我們有
var myData1 = require("./myData1");
myData1.a(); //o2fo.com
myData1.b();
var myData2 = require("./myData2");
myData2.a();
myData2.b();
var myData3 = require("./myData3");
myData3.a();
myData3.b();
最好是做require('./myData')而不是require('./myData.js'),即使兩者對(duì)Node.js都很好。
當(dāng)使用基于文件的模塊時(shí),你需要使用相對(duì)路徑(換句話說(shuō),做require('./myData')而不是require('myData'))。
當(dāng)你想要導(dǎo)出多個(gè)事物時(shí),嘗試并使用exports alias。
以下代碼顯示如何創(chuàng)建本地變量并導(dǎo)出
var myData = exports.myData = /* whatever you want to export as `myData` from this module */ ;
如果有太多你持續(xù)導(dǎo)入到其他文件的模塊在一起,盡量避免重復(fù)導(dǎo)入。
var myData = require("../something/myData");
var myValue = require("../something/myValue");
var another = require("../something/another");
var third = require("../something/third");
相反,在something文件夾中創(chuàng)建一個(gè)單獨(dú)的index.js。在index.js中,導(dǎo)入所有模塊一次,然后從此模塊導(dǎo)出它們。
在c:/yourFolder/index.js我們有
exports.myData = require("./myData");
exports.myValue = require("./myValue");
exports.another = require("./another");
exports.third = require("./third");
現(xiàn)在你可以在每當(dāng)你需要所有這些時(shí)簡(jiǎn)單地導(dǎo)入這個(gè)index.js:
var something = require("../something/index");
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: