測試環境為 CentOS 8 x86_64
把常用的功能寫在一起成為一個模組 (Module) ,模組的回傳值可以是 屬性 (變數 properties) ,函式(函數 Function)或是物件 Object(同時有多個屬性或是函式),以下來看看.
Node.JS 所需套件須透過 npm 來下載,所以必須安裝 npm (Node Package Manager) 套件.
[root@localhost ~]# yum install -y nodejs [root@localhost ~]# yum install -y npm
檢視一下 Node.JS 與 npm 版本.
[root@localhost ~]# node -v v10.23.1 [root@localhost ~]# npm -v 6.14.10
範例參考 – https://ithelp.ithome.com.tw/articles/10185083
屬性 (變數 properties)
編輯模組,回傳值為屬性 (變數).
[root@localhost ~]# vi PMessage.js module.exports.SimpleMessage = 'Hello world';
程式說明:
exports 是一個物件,可以給它 屬性,函式或是物件,如果該模組程式要給其他模組(程式)來使用時必須透過這個.
主程式.
[root@localhost ~]# vi PMessageApp.js var msg = require('./Messages.js'); console.log(msg.SimpleMessage);
程式說明:
- 透過 require 去載入模組.並把得到的 屬性 (變數) 儲存到變數 msg.
- 透過 console.log 把 msg 內容顯示在標準輸出.
執行結果
[root@localhost ~]# node PMessageApp.js Hello world { SimpleMessage: 'Hello world' }
函式(函數 Function)
編輯模組,回傳值為函式(函數).
[root@localhost ~]# vi mLog.js module.exports.log = function (msg) { console.log(msg); };
程式說明:
exports 是一個物件,可以給它 屬性,函式或是物件,如果該模組程式要給其他模組(程式)來使用時必須透過這個.
這邊定義成一個函式,並透過 console.log 把 msg 內容顯示在標準輸出.
主程式.
[root@localhost ~]# vi mLogApp.js var msg = require('./mLog.js'); msg.log('Hello World');
程式說明:
- 透過 require 去載入模組.並把得到的 函式(函數) 儲存到變數 msg.
- 透過 msg.log 把 ‘Hello World’ 傳到函式.
執行結果
[root@localhost ~]# node mLogApp.js Hello World
匿名函式
編輯模組,回傳值為匿名函式.
[root@localhost ~]# vi anonyMsg.js module.exports = function (msg) { console.log(msg); };
程式說明:
跟前面函式(函數)模組的差別就在沒有函式名稱 ( module.exports.log ).
module.exports.log = function (msg) { console.log(msg); };
上面語法也可以寫成 Arrow Function Expression 的方式.
module.exports = (msg) => { console.log(msg); };
主程式.
[root@localhost ~]# vi anonyMsgApp.js var msg = require('./anonyMsg.js'); msg('Hello World');
程式說明:
跟前面的差別就在沒有使用函式名稱 ( msg.log ).
var msg = require('./mLog.js'); msg.log('Hello World');
執行結果
[root@localhost ~]# node anonyMsgApp.js Hello World
類別化函式
編輯模組,回傳值為類別化函式,類似類別 Class 一樣.
[root@localhost ~]# vi Person.js module.exports = function (firstName, lastName) { this.firstName = firstName; this.lastName = lastName; this.fullName = function () { return this.firstName + ' ' + this.lastName; } }
程式說明:
- 類似定義一個類別 Class.
- 其中的 this 代表目前程式碼的物件.
主程式.
[root@localhost ~]# vi PersonApp.js var person = require('./Person.js'); var person1 = new person('James', 'Bond'); console.log(person1.fullName());
程式說明:
- 透過 require 去載入模組.並把得到的類別 Class 儲存到變數 person.
- 因為是類別 Class .須透過 new 產生類別 Class 並儲存到變數 person1.
- new 產生類別 Class 時,已經指定好 firstName 與 lastName,接下來去呼叫 fullName 函數.
執行結果
[root@localhost ~]# node PersonApp.js James Bond
物件 Object(同時有多個屬性或是函式)
編輯模組,回傳值為物件.
[root@localhost ~]# vi data.js module.exports = { firstName: 'James', lastName: 'Bond' }
程式說明:
- exports 是一個物件,可以給它 屬性,函式或是物件,如果該模組程式要給其他模組(程式)來使用時必須透過這個.
- 這邊定義成一個物件,裡面有兩個屬性 firstName 與 lastName.
主程式.
[root@localhost ~]# vi dataApp.js var person = require('./data.js'); console.log(person.firstName + ' ' + person.lastName);
程式說明:
- 透過 require 去載入模組.並把得到的物件儲存到變數 person.
- 透過 變數 person 把 物件 firstName 與 lastName 兩個屬性透過 console.log 把內容顯示在標準輸出.
執行結果
[root@localhost ~]# node dataApp.js James Bond
沒有解決問題,試試搜尋本站其他內容