在開發過程中,為了方便編寫和維護**,我們把函式分組分別放在不同檔案裡面。在node環境中,乙個js檔案就是乙個模組(module),這樣做最大的好處就是大大提高了**的可維護性,其次是提高**的可復用性,而且使用模組還可以避免函式名和變數名的衝突。
首先建立乙個a.js
'use strict';var h = 'hello';
function greet(name)
module.exports = greet;
函式greet()是在a模組中定義的,如果要在其他模組中呼叫這個方法的話怎麼辦呢?其實答案就是最後一行**,它把函式greet()作為模組的輸出暴露出去,使其他模組可以呼叫這個方法。
那麼接下來的問題是其他模組是如何呼叫函式greet()的呢?
建立乙個b.js的檔案
'use strict';// 引入hello模組:
var greet = require('./a');
var h = 'a-module';
greet(h); // hello, a-module!
通過node提供的require函式來引入a模組
var greet = require('./a')
引入的a模組作為變數儲存在變數greet中,而a模組暴露出來的方法正是函式greet();所以模組b(b.js)就成功引用了模組a中的greet()方法,然後就可以直接使用這個方法了。
使用require引入模組時候,要注意模組的相對路徑,node會依次在內建模組、全域性模組和當前模組中查詢你引入的模組名,如果在此過程中程式報錯,請務必要檢查模組名是否正確,模組檔案是否存在,相對路徑是否正確。
以上這種模組載入機制被稱為commonjs規範。
在這個規範下,每個js檔案都是乙個模組,它們內部各自使用的變數名和函式名都互不衝突。乙個模組想要對外暴露變數(函式),可以使用module.export = variable;乙個模組想要引用其他模組暴露的變數(函式)可以使用var ref = require('module_name');
node中的path模組常用介紹
引數 返回值 arg1的最後一部分 由於此方法在不同的系統解析windows路徑出現不一樣的效果,可使用path.win32.basename方法代替此方法。mac os環境 var path require path console.log path.basename c windows cons...
node中的模組
node中乙個檔案就是乙個模組,使用exports和require來進行配置和呼叫。例如定義乙個hello模組 function hello name exports.hello hello main.js如下 var h require hello h.hello world 最後執行node m...
node中的path模組
path為nodejs的核心模組之一,主要用來處理檔案的路徑。當使用時需要引入path模組 var path require path 這裡總結一下path的屬性和方法 path.normalize src 規範化路徑,多個斜槓會被替換成乙個 路徑末尾的斜槓會被保留 windows 系統上,會使用反...