基于node.js express mvc輕量級(jí)框架實(shí)踐
本文記錄的是筆者最近抽私下時(shí)間給朋友做的一個(gè)時(shí)時(shí)彩自動(dòng)下注系統(tǒng),比較簡(jiǎn)單,主要也是為了學(xué)習(xí)一下node.js。
其實(shí)邏輯沒什么可以深談的,主要是想說說這套代碼結(jié)構(gòu)。結(jié)構(gòu)如下圖:
js的代碼比較難以維護(hù),不清楚大家對(duì)于這點(diǎn)是否認(rèn)同,但這里筆者只說自己的感受,筆者的朋友一開始找到筆者,說玩時(shí)時(shí)彩,一直盯著玩,會(huì)因?yàn)樨澬臅?huì)亂來,想做個(gè)自動(dòng)下注系統(tǒng), 讓程序自己玩。一開始,筆者也只想敷衍了事,直接拿node.js+express整了下面這套結(jié)構(gòu)。
基本和express 示例代碼沒啥兩樣。但是隨著需求的變更,覺得維護(hù)起來越來越吃力, 無奈,只能重新來一遍。
這套node.js express mvc代碼結(jié)構(gòu)我是學(xué)習(xí)nodeclub開源項(xiàng)目得來,有興趣的朋友可以去學(xué)習(xí)下。簡(jiǎn)要說明下代碼中各部分的意義:
api-------------------> api 邏輯處理層, 一般就是數(shù)據(jù)的CURD等操作
controllers--------> c端站點(diǎn),沒什么可說的
jobs-----------------> 定時(shí)任務(wù)工作, 結(jié)合node-schedule
logs-----------------> 文件日志
models ------------> mongoose 數(shù)據(jù)庫鏈接及各實(shí)體定義
proxy --------------> 數(shù)據(jù)庫訪問方法封裝,比如說insert、update
util------------------> 工具js封裝,如 DateFormat
views--------------> 頁面層,ejs 頁面渲染引擎
api_router.js-----> api路由
web_router.js---> web頁面路由
app.js-------------> 玩express的都知道這個(gè)文件干啥。
筆者為什么這么做? MVC代碼分層,雖然代碼量無形的增加了,但目的是為了更好的管理,意味著大幅度降低維護(hù)成本,利大于弊。
這里順便提一下 node-schedule 和 pm2 進(jìn)程管理器 在多進(jìn)程模式下,會(huì)出現(xiàn)重復(fù)執(zhí)行問題,筆者的解決方案是 將web 和 jobs 分多個(gè)進(jìn)程管理器管理。
以上這篇基于node.js express mvc輕量級(jí)框架實(shí)踐就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Node.js?連接?MySql?統(tǒng)計(jì)組件屬性的使用情況解析
這篇文章主要為大家介紹了Node.js?連接?MySql?統(tǒng)計(jì)組件屬性的使用情況解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10Node.js數(shù)據(jù)庫操作之查詢MySQL數(shù)據(jù)庫(二)
這篇文章主要介紹了Node.js數(shù)據(jù)庫操作之查詢MySQL數(shù)據(jù)庫的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用mysql能帶來一定的幫助,需要的朋友可以參考借鑒,下面來一起看看吧。2017-03-03node.js文件系統(tǒng)之文件寫入實(shí)例詳解
Node.js和其他語言一樣,也有文件操作,下面這篇文章主要給大家介紹了關(guān)于node.js文件系統(tǒng)之文件寫入的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03輕松創(chuàng)建nodejs服務(wù)器(3):代碼模塊化
這篇文章主要介紹了輕松創(chuàng)建nodejs服務(wù)器(3):代碼模塊化,本文是對(duì)第一節(jié)的例子作了封裝,需要的朋友可以參考下2014-12-12npm?install總是卡住不動(dòng)問題的解決辦法
在我們安裝完Node.js之后,需要使用npm命令來安裝一些工具,下面這篇文章主要給大家介紹了關(guān)于npm?install總是卡住不動(dòng)問題的解決辦法,需要的朋友可以參考下2022-05-05