node.js使用require()函數(shù)加載模塊
詳細(xì)說明均以寫在注釋之中,這里就不啰嗦了,小伙伴們自己詳細(xì)看吧,千萬別吧注釋當(dāng)成空氣了。
/*在node中,可以使用require()函數(shù)來加載模塊.
* require函數(shù)使用一個(gè)參數(shù),參數(shù)值可以帶有完整路徑的模塊的文件名,也可以為模塊名.當(dāng)使用node中提供的模塊時(shí),在require函數(shù)中只需要指定模塊名即可.
* */
//建立一個(gè)頁面2.js;代碼如下
var name="思思博士";
exports.name=name;
//建立一個(gè)頁面1.js;代碼如下
var two=require("./2.js");
console.log(two.name);
//輸出結(jié)果:思思博士
/*
* 在node中所有的腳本文件都是一個(gè)模塊文件,因此1.js也是一個(gè)模塊文件,又由于該文件是在命令行窗口中通過node命令被直接運(yùn)行的,因此在node中該模塊文件被定義為應(yīng)用程序的主模塊
* 可以用如下的方法檢測(cè)出當(dāng)前的模塊是否是主模塊
* */
if(module===require.main){
console.log("當(dāng)前模塊時(shí)主模塊");
}
//輸出結(jié)果:當(dāng)前模塊時(shí)主模塊
//2.js代碼
var name="思思博士";
console.log(name);
exports.name=name;
//1.js代碼:
var two=require("./2.js");
var two=require("./2.js");
//雖然引用了2次,但是只是執(zhí)行了1次console.log(name)的輸出.
/*require.resolve(str)
* 在node中,可以使用這個(gè)函數(shù)來查詢某個(gè)模塊文件的帶有完整絕對(duì)路徑的文件名.
* */
var url=require.resolve("./2");
console.log(url);
//輸出結(jié)果:E:\node\gys\2.js
/*require.cache
* 在node中,這個(gè)屬性代表了所有已被加載模塊的緩存區(qū).
* */
var two=require("./2.js");
var cache=require.cache;
console.log(cache);
/*輸出結(jié)果:
* { 'E:\\node\\gys\\1.js':
{ id: '.',
exports: {},
parent: null,
filename: 'E:\\node\\gys\\1.js',
loaded: false,
children: [ [Object] ],
paths:
[ 'E:\\node\\gys\\node_modules',
'E:\\node\\node_modules',
'E:\\node_modules' ] },
'E:\\node\\gys\\2.js':
{ id: 'E:\\node\\gys\\2.js',
exports: { name: '思思博士' },
parent:
{ id: '.',
exports: {},
parent: null,
filename: 'E:\\node\\gys\\1.js',
loaded: false,
children: [Object],
paths: [Object] },
filename: 'E:\\node\\gys\\2.js',
loaded: true,
children: [],
paths:
[ 'E:\\node\\gys\\node_modules',
'E:\\node\\node_modules',
'E:\\node_modules' ] } }
* */
//2.js代碼
var name="思思博士";
console.log(name);
//1.js代碼
//當(dāng)使用delete關(guān)鍵字刪除緩存區(qū)中緩存的某個(gè)模塊對(duì)象后,下次加載該模塊時(shí)將重新運(yùn)行該模塊中的代碼.使用代碼:
var two=require("./2.js");
var two1=require("./2.js");
console.log("刪除前")
delete require.cache[require.resolve("./2.js")];
console.log("刪除后");
var two2=require("./2.js");
/*
* 輸出結(jié)果:
* 思思博士
* 刪除前
* 刪除后
* 思思博士
* */
童鞋們是否了解了node中require()函數(shù)的用法了呢,本文是自己的一些理解,如有遺漏,還請(qǐng)大家指正。
相關(guān)文章
Node.JS循環(huán)刪除非空文件夾及子目錄下的所有文件
這篇文章主要介紹了Node.JS循環(huán)刪除非空文件夾及子目錄下的所有文件及node.js遞歸刪除非空文件夾的實(shí)例代碼,需要的朋友可以參考下2018-03-03
node.js文件系統(tǒng)之文件寫入實(shí)例詳解
Node.js和其他語言一樣,也有文件操作,下面這篇文章主要給大家介紹了關(guān)于node.js文件系統(tǒng)之文件寫入的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03
Express 配置HTML頁面訪問的實(shí)現(xiàn)
這篇文章主要介紹了Express 配置HTML頁面訪問的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
Node.js調(diào)用DeepSeek?API的完整指南
本文將介紹如何使用?Node.js?調(diào)用?DeepSeek?API,實(shí)現(xiàn)流式對(duì)話并保存對(duì)話記錄,Node.js?版本使用現(xiàn)代異步編程方式實(shí)現(xiàn),支持流式處理和錯(cuò)誤處理,文章通過代碼示例講解的非常詳細(xì),需要的朋友可以參考下2025-02-02
node.js實(shí)現(xiàn)登錄注冊(cè)頁面
這篇文章主要為大家詳細(xì)介紹了node.js實(shí)現(xiàn)簡(jiǎn)單的登錄注冊(cè)頁面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04
Ubuntu 16.04 64位中搭建Node.js開發(fā)環(huán)境教程
如果想要在Ubuntu 16.04上安裝Node.js的話,這篇文章對(duì)你來說肯定很重要。Node.js從本質(zhì)上來說就是一個(gè)運(yùn)行在服務(wù)端上的封裝好了輸入輸出流的javascript程序。本文給大家詳細(xì)介紹了在Ubuntu 16.04 64位搭建Node.js開發(fā)環(huán)境的步驟,有需要的朋友們可以參考學(xué)習(xí)。2016-10-10
詳解nodeJS之二進(jìn)制buffer對(duì)象
本篇文章主要介紹了nodeJS之二進(jìn)制buffer對(duì)象,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-06-06
node+express+ejs制作簡(jiǎn)單頁面上手指南
本文記錄了使用node+express+ejs制作簡(jiǎn)單頁面的全過程,話說express+ejs真的是太難了,有種蛋蛋的憂傷~2014-11-11

