日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

NodeJs模块化(KPD)

發布時間:2023/12/14 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 = a

    module.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
    function xyz(exports,require,module,_filename,dirname){ //中間的內容是我們寫的nodejs代碼//NodeJs的模塊是運行在一個函數當中的。return module.exports; }

    在上面的index.js中輸console.log(arguments); 可以全部打印出來這些參數,就可以驗證這一點。

    基本內置模塊

    • os
      1.EOL: end of line
    const os = require("os"); console.log(os.EOL);

    2.arch():獲取CPU的架構名
    3.cpus():獲取CPU每個核的信息
    4.freeman():得到我們當前的內存還剩下多少
    5.homedir():用戶目錄
    6.hostname():獲取主機名
    7.tmpdir()::獲得操作系統的臨時目錄

    • path
      1.basename:文件名
      2.sep:分隔符,同一塊東西的內部分割
      3.delimiter:分割,塊與塊之間的分割
      4.dirname:獲取當前路徑
    const dir = path.dirname("a/b/c/d.js"); console.log(dir); //輸出結果為a/b/c

    5.extname :獲取后綴名

    總結

    以上是生活随笔為你收集整理的NodeJs模块化(KPD)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。