node.js中的require使用詳解
代碼注釋里已經(jīng)描述的非常的清晰,這里就不多廢話了,直接奉上代碼:
/*在node中,可以使用require()函數(shù)來加載模塊.
* require函數(shù)使用一個參數(shù),參數(shù)值可以帶有完整路徑的模塊的文件名,也可以為模塊名.當(dāng)使用node中提供的模塊時,在require函數(shù)中只需要指定模塊名即可.
* */
//建立一個頁面2.js;代碼如下
var name="思思博士";
exports.name=name;
//建立一個頁面1.js;代碼如下
var two=require("./2.js");
console.log(two.name);
//輸出結(jié)果:思思博士
/*
* 在node中所有的腳本文件都是一個模塊文件,因此1.js也是一個模塊文件,又由于該文件是在命令行窗口中通過node命令被直接運(yùn)行的,因此在node中該模塊文件被定義為應(yīng)用程序的主模塊
* 可以用如下的方法檢測出當(dāng)前的模塊是否是主模塊
* */
if(module===require.main){
console.log("當(dāng)前模塊時主模塊");
}
//輸出結(jié)果:當(dāng)前模塊時主模塊
//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中,可以使用這個函數(shù)來查詢某個模塊文件的帶有完整絕對路徑的文件名.
* */
var url=require.resolve("./2");
console.log(url);
//輸出結(jié)果:E:\node\gys\2.js
/*require.cache
* 在node中,這個屬性代表了所有已被加載模塊的緩存區(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ū)中緩存的某個模塊對象后,下次加載該模塊時將重新運(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.js中require的使用方法了呢,如有疑問,請留言。
相關(guān)文章
Node.js和Vue的安裝與配置超詳細(xì)步驟(推薦)
使用VUE前端框架開發(fā),需要安裝Node.js和Vue.js,這篇文章主要給大家介紹了關(guān)于Node.js和Vue的安裝與配置超詳細(xì)步驟的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01
利用node實(shí)現(xiàn)一個批量重命名文件的函數(shù)
這篇文章主要給大家介紹了關(guān)于利用node實(shí)現(xiàn)一個批量重命名文件的函數(shù)的相關(guān)資料,文中通過示例示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12
node+express+ejs使用模版引擎做的一個示例demo
本篇文章主要介紹了node+express+ejs使用模版引擎做的一個示例demo,具有一定參考價值,有興趣的小伙伴可以了解一下2017-09-09
express框架中使用jwt實(shí)現(xiàn)驗(yàn)證的方法
這篇文章主要給大家介紹了關(guān)于express框架中使用jwt實(shí)現(xiàn)驗(yàn)證的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用express具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
better?sqlite3安裝node?gyp原生模塊編譯prebuild-install
這篇文章主要為大家介紹了Nodejs關(guān)于原生模塊編譯node-gyp?+?prebuild-install?(以安裝?better-sqlite3為例)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11
如何利用node實(shí)現(xiàn)靜態(tài)文件緩存詳解
HTTP 緩存機(jī)制作為 Web 應(yīng)用性能優(yōu)化的重要手段,對于從事 Web 開發(fā)的同學(xué)們來說,應(yīng)該是知識體系的基礎(chǔ)環(huán)節(jié),也是想要成為前端架構(gòu)的必備技能,這篇文章主要給大家介紹了關(guān)于如何利用node實(shí)現(xiàn)靜態(tài)文件緩存的相關(guān)資料,需要的朋友可以參考下2021-07-07

