NodeJs模块化(KPD)
一、后端的規范與思想
分層
(1)Web層(接收和發送Http請求的,封裝;web層、controller層)
(2)業務邏輯層(服務層,xxxService; )
LoginController(接收參數,判斷是否非法,傳給服務層)
LoginService(獲取這個用戶的密碼,進行比較)
(3)DAO層:
DataBase(DB):存數據
業務:對對象進行操作
如果要存儲: 對象 轉為 數據
如果要讀取: 數據 轉為 對象
(4)持久層 :存在磁盤上
文件,數據庫
每層的命名:
web層: LoginController(接收參數,判斷是否非法,傳給服務層)
服務層: LoginService(獲取這個用戶的密碼,進行比較)
DAO層:LoginDAO(從數據庫獲取數據,并轉換為對象)
Domain:User
設計模式 :單一職責原則
模塊化
(1)Es6、導入導出;Es3、5缺點:缺少模塊化概念
(2)Js規范缺乏管理機制,Bootstrap,Jquery
npm
npm install XXX
模塊化:
先創建兩個文件夾 index.js 和 test.js
重要的兩點:
比如說index.js要用到test.js中的內容,要在index.js中==引入 ==:
index.js文件中:
require('');//想引用哪個模塊就寫入哪個模塊的路徑 //比如: var test = require("./test.js");返回一個模塊對象 console.log(test.a)test.js文件中,要讓別的文件引用這個文件內容 ,要導出(module.exports)
var a = 123; var b = "abc";//開閉原則 module.exports.a = a; module.exports.b = b; //moodule.exports.a = a 可以簡寫為exports.a = amodule.exports 和exports有什么區別
我們先來舉一個例子:
index.js
test.js
運行結果:
若把其中一個改為exports.a = a結果為
我們可以看到exports.a = a 和module.exports.a = a輸出的結果相同,那么這就可以說明兩個是完全相同的嗎, 答案是不相同
- 分析
當我們把其中一個改了之后,結果為:
發現值不一樣了,這是為什么呢?
我們可以畫個圖來看一下:
注意:如果把module.exports換成別的對象,最后輸出的也只是module.exports后面的對象的值,可以自己試著驗證一下
重點:
-
NodeJs的模塊是運行在一個函數當中的。上面所引用的參數不是全局的變量,而是當作函數的參數傳進去的。
eg:我們創建一個文件 system.js 比如說這個函數名字為xyz
在上面的index.js中輸console.log(arguments); 可以全部打印出來這些參數,就可以驗證這一點。
基本內置模塊
- os
1.EOL: end of line
2.arch():獲取CPU的架構名
3.cpus():獲取CPU每個核的信息
4.freeman():得到我們當前的內存還剩下多少
5.homedir():用戶目錄
6.hostname():獲取主機名
7.tmpdir()::獲得操作系統的臨時目錄
- path
1.basename:文件名
2.sep:分隔符,同一塊東西的內部分割
3.delimiter:分割,塊與塊之間的分割
4.dirname:獲取當前路徑
5.extname :獲取后綴名
總結
以上是生活随笔為你收集整理的NodeJs模块化(KPD)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java正则表达式下划线_用于标识符的J
- 下一篇: 【Azure Data Platform