国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

express 項目分層實踐詳解

2024-05-06 15:27:25
字體:
來源:轉載
供稿:網友

前言

上次我們搭建了一個基本的 express 后臺,但是這樣的項目結構的可擴展性,維護性和代碼復用性都不是很好,參照之前學習 JavaWeb 時候的四層架構設計,用分層的思想來對 express 進行一點小優化,進一步提高代碼的可拓展性。本文的源代碼在 Github 上,建議看著代碼來看這篇文章。

1 四(五)層結構概念

這個就簡單說一下,所謂四層架構就是 Model實體層,Dao層(數據訪問層也就是從數據庫中查數據),Service層(業務邏輯層,也就是處理好數據),Controller層(視圖控制層,在前后端分離的情況下就是寫接口響應前端請求)和前端的 view(視圖層),為啥要搞分層咧,說到底就是要解耦合,提高拓展性和維護性,寫代碼的時候,思路清晰一點,后面改代碼的時候也知道要改哪邊。

但是我們這次只是涉及后臺的,視圖層我們就不用管了,只需看前面的就行了。

2 分層

首先看一下項目結構哈

│ app.js│ package.json│ README.md│├─.idea│ │ express-project.iml│ │ misc.xml│ │ modules.xml│ │ vcs.xml│ │ watcherTasks.xml│ │ workspace.xml│ ││ └─inspectionProfiles├─bin│  www│├─config│  db.json│├─dao│  BaseDao.js│  UserDao.js│├─models│  user.js│├─public│ ├─images│ ├─javascripts│ └─stylesheets│   style.css│├─routes│  index.js│  users.js│├─services│  UserService.js│├─utils│  db-util.js│└─views  error.jade  index.jade  layout.jade

按照分層思想,我們新建幾個文件夾哈,首先是 Model層的 models 文件夾,dao 層的 dao 文件夾,service 層的 services 文件夾,controller 層的話就用原來的 routes 文件夾就可以了,為了方便,我加了一個全局配置的 config 文件夾和工具函數 utils 文件夾。具體項目如下,我們從最底層開始來一個一個來分析

2.1 config

這個就放著各種配置文件,例如我的 db.json 里面就放了mongodb 的端口號,數據庫名那些,反正就是各種配置啦

2.2 utils

這個就是有一些創建型的方法或者其他公共方法,像創建數據庫連接池的方法我就放在這邊的 db-util 里面了。

2.3 models

實體層,針對 mongodb 來說,一個集合對應一個 model,然后都是這樣的形式啦。

const mongoose = require('mongoose');const { mongoClient } = require('../utils/db-util');// 創建 user Schemaconst user = new mongoose.Schema({ name: String, id: String,},{versionKey: false});/*model 的參數1 導出的模塊名,參數2 創建的 Schema,參數2 指定數據庫中的集合的名字,若不加的,則抹默認取‘第一個參數s'的集合*/let User = mongoClient.model('User', user, 'user');module.exports = User;            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 元阳县| 正蓝旗| 巴马| 鄂尔多斯市| 邹城市| 宁都县| 扎赉特旗| 阜康市| 西乌珠穆沁旗| 成武县| 阿拉尔市| 通许县| 磴口县| 汾西县| 城市| 衡阳市| 墨脱县| 雷州市| 原阳县| 常熟市| 秀山| 峨眉山市| 株洲市| 大名县| 钟祥市| 明星| 永城市| 博野县| 东至县| 奉节县| 张家川| 岳普湖县| 法库县| 哈尔滨市| 阳新县| 黎平县| 建湖县| 运城市| 鄯善县| 错那县| 丹寨县|