6-1 Node.js 模組
Node.js 的模組
為了讓Node.js的檔案可以相互呼叫,Node.js提供了一個簡單的模組系統。
模組是Node.js 應用程式的基本組成部分,檔案和模組是一一對應的。
換言之,一個 Node.js 檔案就是一個模組,這個檔案可能是JavaScript 程式碼、JSON 或者編譯過的C/C++ 擴充套件。
建立一個模組
建立一個 funcitons.js 檔案 檔案內容如下
/*
* 這是一個對 物件 操作的模組
*/
// 定義一個陣列
var arr = new Object();
// 獲取單個資料
function get(key){
return arr[key];
}
function getList(){
return arr;
}
function add(key, value){
return arr[key] = value;
}
function edit(key, value){
return arr[key] = value;
}
function del(key){
return delete arr[key];
}
function clear(){
arr = new Object();
}
function dump(){
data = getList();
console.log(data);
}
// 通過設定modul.exports物件
// 將這些方法繫結到 modul.exports物件
// 當匯入這個檔案的時候 就可以呼叫了
module.exports.get = get;
module.exports.getList = getList;
module.exports.add = add;
module.exports.edit = edit;
module.exports.del = del;
module.exports.clear = clear;
module.exports.dump = dump;
模組的使用
在同目錄下 建立一個 code.js 內容如下
// 匯入模組
var functions = require('./functions');
// 注意模組匯入模組的是不加 “.js” 字尾的
// 模組名即 檔名
// 路徑必須 填寫 絕對路徑 或者相對路徑
// 即 /xxxx/xxx/檔名 或者 ./xxx/檔名
// 如果路徑 是這樣的 'functions' 這樣是會報錯的。
// 只有node.js 內部的模組 才可以這麼引入 例如 http, fs 等
// 列印看看 functions 物件 都是啥。。。
// 看看物件有什麼
console.log(functions);
// 列印的資料如下 全是我們剛才暴露的方法。。。。。
// chen@chen:~/study/2-1 module$ node 2-2\ code.js
// { get: [Function: add],
// getList: [Function: getList],
// add: [Function: add],
// edit: [Function: edit],
// del: [Function: del],
// clear: [Function: clear],
// dump: [Function: dump] }
// chen@chen:~/study/2-1 module$
//
// 使用模組
/*
所有剛剛在 functions 檔案中暴露的都可以通 引入的物件操作
*/
// 新增
functions.add('11', 'aaa');
functions.add('22', 'bbb');
// 獲取單個
var data = functions.get('11');
console.log(data);
// 獲取列表
data = functions.getList();
console.log(data);
// 修改單個
functions.edit('11', 'ccc');
functions.dump();
// 刪除單個
functions.del('11');
functions.dump();
// 清空全部
functions.clear();
functions.dump();
輸出的效果如下
chen@chen:~/study/nodejs/module$ node code.js
// 這個是物件資訊
{ get: [Function: get],
getList: [Function: getList],
add: [Function: add],
edit: [Function: edit],
del: [Function: del],
clear: [Function: clear],
dump: [Function: dump] }
// 下方是呼叫方法的輸出結果
aaa
{ '11': 'aaa', '22': 'bbb' }
{ '11': 'ccc', '22': 'bbb' }
{ '22': 'bbb' }
{}
chen@chen:~/study/nodejs/module$
模組小結
- 最好一個模組 一個操作,但是不要太過耦合 和 單一
- 檔名即是 模組名
- 引入 模組的時候 注意路徑 要麼是絕對路徑 要麼是相對路徑
- 只用引入 nodejs 自帶模組 才可以 不帶路徑 直接模組名
- 模組內的方法 或者物件,如果需要被外部訪問,需要通過設定 module.exports. 來繫結
相關文章
- Node.js模組Node.js
- 【核心模組】node.jsNode.js
- Node.js path模組Node.js
- Node.js模組系統Node.js
- Node.js 的 http模組Node.jsHTTP
- Node.js 的 模組化Node.js
- Node.js之模組機制Node.js
- electron 使用 Node.js 原生模組Node.js
- Node.js 系列 – 模組機制Node.js
- Node.js 系列 - 模組機制Node.js
- Node.js process 模組解讀Node.js
- Node.js util 模組解讀Node.js
- Node.js教程15:net模組初探Node.js
- node.js之path模組的使用Node.js
- 無涯教程: Node.js - Web模組Node.jsWeb
- node.js中的模組實現原理Node.js
- Node.js child_process模組解讀Node.js
- 淺析node.js的模組載入Node.js
- 你需要了解的 Node.js 模組Node.js
- 理解Node.js安裝及模組化Node.js
- 在Node.js中使用C++模組Node.jsC++
- 在Windows上安裝Node.js模組WindowsNode.js
- Node.js 如何處理 ES6 模組Node.js
- Node.js基礎知識之Path模組Node.js
- Node.js 核心模組 Timers 詳解Node.js
- 極簡 Node.js 入門 - 1.2 模組系統Node.js
- Node.js之readline模組的使用Node.js
- Node.js之網路通訊模組淺析Node.js
- node.js debug模組淺析及改進Node.js
- 模組化方式構建Node.js應用程式Node.js
- Node.js(一)——(Node.js安裝及使用,通過Node.js搭建伺服器,模組化及自定義模組,npm/yarn/nvm,內建模組fs的使用,buffer及stream,新聞列表案例)Node.js伺服器NPMYarn
- <node.js學習筆記(4)>stream和http模組Node.js筆記HTTP
- 使用C++為node.js寫擴充套件模組C++Node.js套件
- Node.js中Qt擴充套件模組Node-QtNode.jsQT套件
- Node.js常用模組Module的載入機制與使用Node.js
- [譯]使用 Rust 編寫快速安全的原生 Node.js 模組RustNode.js
- node.js 模組和其下載資源的映象設定Node.js
- <node.js學習筆記(6)>koa-router,模組化Node.js筆記