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