nodejs的require模塊(文件模塊/核心模塊)及路徑介紹
更新時(shí)間:2013年01月14日 17:47:51 作者:
在nodejs中,模塊大概可以分為核心模塊和文件模塊,核心模塊是被編譯成二進(jìn)制代碼,引用的時(shí)候只需require表示符即可,文件模塊,則是指js文件、json文件或者是.node文件
在nodejs中,模塊大概可以分為核心模塊和文件模塊。
核心模塊是被編譯成二進(jìn)制代碼,引用的時(shí)候只需require表示符即可,如(require('net'))。
文件模塊,則是指js文件、json文件或者是.node文件。在引用文件模塊的時(shí)候后要加上文件的路徑:/.../.../xxx.js表示絕對(duì)路徑、./xxx.js表示相對(duì)路徑(同一文件夾下的xxx.js),../表示上一級(jí)目錄。如果既不加/.../、../又不加./的話,則該模塊要么是核心模塊,要么是從一個(gè)node_modules文件夾加載。
對(duì)于加載模塊時(shí)既沒(méi)指出./ ../ /.../時(shí),加載模塊的搜索路徑。如果'/home/ry/projects/foo.js' 中的文件調(diào)用了 require('bar.js') ,node將在下面的位置進(jìn)行搜索:
/home/ry/projects/node_modules/bar.js
/home/ry/node_modules/bar.js
/home/node_modules/bar.js
/node_modules/bar.js
文件夾作為模塊:
首先在文件夾的根下建立package.json文件,它標(biāo)識(shí)了一個(gè)主模塊。一個(gè)package.json中的內(nèi)容可能如下:
{ "name" : "some-library", "main" : "./lib/some-library.js" }
如果這是在一個(gè)文件夾./some-library下,那么require('./some-library')時(shí)將試圖加載./some-library/lib/some-library.js如果在這個(gè)目錄下沒(méi)有package.json文件,node將試圖從這個(gè)目錄下加載index.js或index.node文件。例如,如果上面沒(méi)有package.json文件,那么require('./some-library')時(shí),將試圖加載下面的文件:
./some-library/index.js
./some-library/index.node
核心模塊是被編譯成二進(jìn)制代碼,引用的時(shí)候只需require表示符即可,如(require('net'))。
文件模塊,則是指js文件、json文件或者是.node文件。在引用文件模塊的時(shí)候后要加上文件的路徑:/.../.../xxx.js表示絕對(duì)路徑、./xxx.js表示相對(duì)路徑(同一文件夾下的xxx.js),../表示上一級(jí)目錄。如果既不加/.../、../又不加./的話,則該模塊要么是核心模塊,要么是從一個(gè)node_modules文件夾加載。
對(duì)于加載模塊時(shí)既沒(méi)指出./ ../ /.../時(shí),加載模塊的搜索路徑。如果'/home/ry/projects/foo.js' 中的文件調(diào)用了 require('bar.js') ,node將在下面的位置進(jìn)行搜索:
復(fù)制代碼 代碼如下:
/home/ry/projects/node_modules/bar.js
/home/ry/node_modules/bar.js
/home/node_modules/bar.js
/node_modules/bar.js
文件夾作為模塊:
首先在文件夾的根下建立package.json文件,它標(biāo)識(shí)了一個(gè)主模塊。一個(gè)package.json中的內(nèi)容可能如下:
復(fù)制代碼 代碼如下:
{ "name" : "some-library", "main" : "./lib/some-library.js" }
如果這是在一個(gè)文件夾./some-library下,那么require('./some-library')時(shí)將試圖加載./some-library/lib/some-library.js如果在這個(gè)目錄下沒(méi)有package.json文件,node將試圖從這個(gè)目錄下加載index.js或index.node文件。例如,如果上面沒(méi)有package.json文件,那么require('./some-library')時(shí),將試圖加載下面的文件:
復(fù)制代碼 代碼如下:
./some-library/index.js
./some-library/index.node
您可能感興趣的文章:
相關(guān)文章
javascript學(xué)習(xí)筆記(十二) RegExp類(lèi)型介紹
javascript學(xué)習(xí)筆記之RegExp類(lèi)型介紹,學(xué)習(xí)js的朋友可以參考下2012-06-06
javaScript面向?qū)ο罄^承方法經(jīng)典實(shí)現(xiàn)
很多人都說(shuō)JavaScript不能算是面向?qū)ο蟮淖兂烧Z(yǔ)言。但是JavaScript的類(lèi)型非常松散,也沒(méi)有編譯器,但是我們可以模仿著其他語(yǔ)言實(shí)現(xiàn)面向?qū)ο蟮姆绞絹?lái)實(shí)現(xiàn)JavaScript的面向編程2013-08-08
javascript基礎(chǔ)數(shù)據(jù)類(lèi)型轉(zhuǎn)換教程示例
總結(jié)了javascipt中的數(shù)據(jù)類(lèi)型之后,我們就了解了,prompt()接收的全是字符串,因此數(shù)據(jù)類(lèi)型轉(zhuǎn)換就顯得尤為重要,一起來(lái)學(xué)習(xí)一下吧2022-03-03
JavaScript必知必會(huì)(七)js對(duì)象繼承
這篇文章主要介紹了JavaScript必知必會(huì)(七)js對(duì)象繼承的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06
javaScript arguments 對(duì)象使用介紹
函數(shù)體內(nèi)可以通過(guò) arguments 對(duì)象來(lái)接收傳遞進(jìn)來(lái)的參數(shù),下面有個(gè)不錯(cuò)的示例,大家可以感受下2013-10-10
addEventListener和attachEvent二者綁定的執(zhí)行函數(shù)中的this不相同
寫(xiě) addEventListener 和 attachEvent 區(qū)別的博文不少,不過(guò)大部分都把重點(diǎn)放置于前者是Firefox chrome,后者只是存在于IE系列中2012-12-12
js常用數(shù)組操作方法簡(jiǎn)明總結(jié)
這篇文章主要介紹了js常用數(shù)組操作方法簡(jiǎn)明總結(jié),直接上代碼,代碼中有詳細(xì)的注釋,需要的朋友可以參考下2014-06-06

