1. 程式人生 > >nodejs 中模組使用的介紹

nodejs 中模組使用的介紹

模組的分類
核心模組: 如 http
檔案模組: 如 var util = require(‘./util.js’)
第三方模組: 如 var promise=require(‘bluebird’)

模組的使用流程
建立模組: teacher.js
匯出模組: exports.add = function(){}
載入模組: var teacher = require(‘./teacher.js’)
使用模組: teacher.add(‘Tom’)

require,exports 和 module
require 函式用於在當前模組中載入和使用別的模組,傳入一個模組名,返回一個模組匯出物件。模組名可使用相對路徑(以./開頭),或者是絕對路徑(以/ 或C: 之類的碟符開頭)。另外,模組名中的.js 副檔名可以省略。

exports 物件是當前模組的匯出物件,用於匯出模組公有方法和屬性。別的模組通過 require 函式使用當前模組時得到的就是當前模組的 exports 物件。

module 物件可以訪問到當前模組的一些相關資訊,但最多的用途是替換當前模組的匯出物件。例如模組匯出物件預設是一個普通物件。

模組初始化
一個模組中的 JS 程式碼僅在模組第一次被使用時執行一次,並在執行過程中初始化模組的匯出物件。之後,快取起來的匯出物件被重複利用。

使用舉例
我們假設有一個學校,學校裡有班級,老師,學生等成員。我們可以把班級,老師,學生先模組化再整合在一起。

老師模組: teacher.js

function
add(teacher){
console.log('Add Teacher',teacher) } exports.add = add;

學生模組: student.js

function add(student){
    console.log('Add Student',student)
}
exports.add = add;

班級模組: class.js

var student = require('./student');
var teacher = require('./teacher');
function add(teacherName,students)
{
//班級由一個老師和多個學生組成 teacher.add(teacherName); students.forEach(function(item,index){ student.add(item); }) } exports.add=add; //使模組成為傳統的模組例項 //module.exports=add; //使模組成為特別的物件型別

新建一個測試檔案:index.js

var c = require('./class');

c.add('Scot',['高富帥','白富美'])

這時候再命令列下輸入: node index 就會列印輸出如下資訊:

add Teacher Scot
add Student 高富帥
add Student 白富美