在Node.js中,能夠本身編寫或從網上下載模塊文件:node
使用require()引入模塊文件時須要指定文件的路徑及文件名:npm
自定義模塊json
使用 exports對象,暴露模塊內的變量、函數 或 對象數組
var myMsg = 'hello'; var func = function(){ //... } exports.msg = myMsg; exports.func = func;
//也能夠使用module.exports.XXX
自定義模塊爲類
函數
使用 module.exports 的書寫方法。工具
var name=''; var age = 0; var foo = function(){ //... } foo.prototype.name = name; foo.prototype.age = age; foo.prototype.getName = function(){ //... } foo.prototype.setName = function(){ //... } module.exports = foo;
爲模塊類定義變量或函數單元測試
當把模塊定義爲類時,能夠爲該類定義類變量或類函數測試
var foo = function(){ //... } foo.staticName = ''; foo.staticFunc = function(){ //... } module.exports = foo;
組織管理模塊
ui
若是在require函數中參數只使用文件名,但不指定路徑,則Node.js將該文件視爲 node_modules目錄下的文件。spa
使用目錄管理模塊:
{ "name":"foo", "main":"./lib/foo.js" }
從全局目錄中加載模塊
若是在操做系統的環境變量中設置了NODE_PATH變量,並將變量值設置爲一個有效的磁盤目錄,在require中只指定模塊名,而沒有指定路徑時,而且Node.js從其餘路徑中找不到須要加載的模塊文件,Node.js將從NODE_PATH變量值所指向的磁盤目錄中尋找並加載模塊。
模塊對象屬性
module.id
當前模塊的ID。
在默認狀況下,主模塊的ID屬性值爲「.」,其餘模塊的ID屬性值爲該模塊文件的絕對路徑。
module.filename
當前模塊文件的文件名。
module.loaded
屬性值爲布爾值,當爲false時,表示模塊還沒有加載完畢,爲true時,表示 屬塊加載完畢。
module.parent
屬性值爲當前模塊的父模塊對象。
module.children
屬性值爲一個數組,存放了當前模塊的全部子模塊對象。
Node.js中的包
一個包事實上是一個目錄,其餘包含了用於對包進行描述的JSON格式的package.json文件。
包中的內容:
package.json中的內容:
npm包管理工具
//搜索並查看forever包信息 npm search forever //查看forever包所用package.json中的信息 npm view forever //下載forever npm install forever //全局安裝包 npm install -g forever //查看Node.js的全局包的安裝路徑 npm root -g //修改Node.js的全局包的安裝路徑 npm config set prefix "d:\node" //查看命令行提示窗口當前目錄下所安裝的全部包 npm list //查看Node.js的全局包的安裝路徑下安裝的全部包 npm list -g //卸載當前目錄下安裝的某個包 npm uninstall <包名> //卸載Node.js全局包的安裝路徑下安裝的某個包 npm uninstall -g <包名> //更新當前目錄下安裝的某個包 npm update <包名> //更新Node.js的全局包的安裝路徑下安裝的某個包 npm update -g <包名> //更新當前目錄下安裝的全部名 npm update //更新Node.js的全局包的安裝路徑下安裝的全部包 npm update -g