基于node.js express mvc輕量級(jí)框架實(shí)踐
本文記錄的是筆者最近抽私下時(shí)間給朋友做的一個(gè)時(shí)時(shí)彩自動(dòng)下注系統(tǒng),比較簡(jiǎn)單,主要也是為了學(xué)習(xí)一下node.js。
其實(shí)邏輯沒(méi)什么可以深談的,主要是想說(shuō)說(shuō)這套代碼結(jié)構(gòu)。結(jié)構(gòu)如下圖:

js的代碼比較難以維護(hù),不清楚大家對(duì)于這點(diǎn)是否認(rèn)同,但這里筆者只說(shuō)自己的感受,筆者的朋友一開(kāi)始找到筆者,說(shuō)玩時(shí)時(shí)彩,一直盯著玩,會(huì)因?yàn)樨澬臅?huì)亂來(lái),想做個(gè)自動(dòng)下注系統(tǒng), 讓程序自己玩。一開(kāi)始,筆者也只想敷衍了事,直接拿node.js+express整了下面這套結(jié)構(gòu)。

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

