您好,登錄后才能下訂單哦!
這篇文章主要介紹了node.js express mvc輕量級(jí)框架的示例分析,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
其實(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)程管理器管理。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“node.js express mvc輕量級(jí)框架的示例分析”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。