摘要:迄今為止我的那個(gè)小網(wǎng)站已經(jīng)發(fā)布到網(wǎng)上了,然而功能還在迭代中,真的說(shuō)起來(lái)的話,現(xiàn)在距離版本的發(fā)布,還差。于是改為了,接收,然后把通用的體扔給的形式。每個(gè)頁(yè)面進(jìn)入時(shí)需要調(diào)用檢查。以方便錯(cuò)誤處理。包的連接池,不關(guān)閉,最多個(gè)連接,多了會(huì)爆掉。
迄今為止我的那個(gè)小網(wǎng)站已經(jīng)發(fā)布到網(wǎng)上了,然而功能還在迭代中,真的說(shuō)起來(lái)的話,現(xiàn)在距離1.0版本的發(fā)布,還差50%?,F(xiàn)在記錄一下之前做的一些內(nèi)容,以及一些技術(shù)路線方面的改進(jìn)吧:
首先,這是一個(gè)用于我個(gè)人統(tǒng)計(jì)研究和展示的網(wǎng)站,當(dāng)前的核心是一個(gè)CMS系統(tǒng),想要統(tǒng)計(jì)用戶發(fā)布信息的關(guān)鍵詞與情感趨勢(shì)
最初的想法是在zuiwan.org的基礎(chǔ)上,做一個(gè)二級(jí)網(wǎng)站。所以在服務(wù)端技術(shù)架構(gòu)上,依然沿用主站的NODE+EXPRESS的方法,服務(wù)器沒(méi)有采用一直使用的MongoDB,而是換成了MySQL,也方便后期上Java或者PHP。
前端架構(gòu)上,也沒(méi)有采用主站的VUE,而是沿用了我更加熟練的NG1.5。
服務(wù)端結(jié)構(gòu):
Index->Router->Model->DAO->MySQL => HTTP型api訪問(wèn)流
Index->static => 靜態(tài)頁(yè)面訪問(wèn)流
Index->socket.io Handler->Model->DAO->MySQL => socket接口訪問(wèn)流
最初是沒(méi)有socket.io的,當(dāng)時(shí)試圖直接用普通的HTTP接口來(lái)實(shí)現(xiàn),但是實(shí)時(shí)性需要用計(jì)時(shí)器來(lái)輪訓(xùn),后來(lái)考慮到后期擴(kuò)展,直接使用了socket.io。
model層最初被用來(lái)做黏合,接收的是req,res,然后直接在model層做了res.end()。但是后期在擴(kuò)展socket的時(shí)候發(fā)現(xiàn),這樣會(huì)導(dǎo)致耦合度激增。于是改為了,接收data,cb,然后把通用的response體扔給cb的形式。
在之前的設(shè)計(jì)里,我一直不知道m(xù)odel層該如何設(shè)計(jì),為何router不能直接與dao進(jìn)行調(diào)度和數(shù)據(jù)交換。然后看到他們的java實(shí)體類——天了嚕,為何一個(gè)Model要對(duì)應(yīng)一個(gè)dao,這豈不是更沒(méi)有道理了。
后來(lái)我真正開始自己的寫法的時(shí)候,就找到了一點(diǎn)點(diǎn)思路——比如用戶模塊,一方面對(duì)上層接受的是路由過(guò)來(lái)的各種相關(guān)方法,一方面,并不只是對(duì)應(yīng)一個(gè)user的Dao方法,其實(shí)涉及到很多個(gè)dao,比如token、relation等等。而token這個(gè)dao,也不可能多帶帶拿一個(gè)Model去對(duì)應(yīng)?!@是我的思路。
這么說(shuō)來(lái),其實(shí)我是少了Controller層。感覺(jué)java里Model封裝了dao之后,在Controller里調(diào)用了各個(gè)Model。但是我暫時(shí)還沒(méi)有找到這樣的優(yōu)勢(shì)。所以還是沿用自己的思路吧。
另外,在與MySQL交互的時(shí)候,我抽取了一個(gè)dao的封裝,暴露了一個(gè)query方法,作為各個(gè)dao的根基,上面的dao就只需要寫dao.query(str, cb)就好了。
前端:
標(biāo)準(zhǔn)的NG1.5+UI-Router,BS做了上層樣式展現(xiàn)。只是我一直用不慣UI.BootStrap。導(dǎo)致我現(xiàn)在還在用BS苦苦支撐。
Socket對(duì)接沿用了之前的代碼、service用來(lái)存儲(chǔ)全局變量。每個(gè)頁(yè)面進(jìn)入時(shí)需要調(diào)用session檢查。
其他的無(wú)甚好說(shuō)了。
經(jīng)驗(yàn)教訓(xùn):
1.NodeJS編程中,接口的回調(diào)參數(shù),默認(rèn)是err, data。以方便錯(cuò)誤處理。
2.NG-repeat是支持子變量過(guò)濾的,自動(dòng)的。
3.新學(xué)了express-session。
4.mysql包的連接池,不關(guān)閉,最多10個(gè)連接,多了會(huì)爆掉。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/86684.html
摘要:什么是數(shù)組數(shù)組是值的有序集合。這個(gè)位置用數(shù)字表示叫索引數(shù)組用字符串表示叫關(guān)聯(lián)數(shù)組。 什么是數(shù)組 數(shù)組是值的有序集合。數(shù)組中的每個(gè)值叫一個(gè)元素,每個(gè)元素在數(shù)組中都有一個(gè)唯一的位置。這個(gè)位置用數(shù)字表示叫索引數(shù)組;用字符串表示叫關(guān)聯(lián)數(shù)組。數(shù)組的元素可以是不同的類型可以動(dòng)態(tài)的向數(shù)組差人新元素,或者刪除指定元素 一維數(shù)組 定義數(shù)組 定義數(shù)組的方式有三種 /*數(shù)組字面量方式定義數(shù)組*/ var a...
摘要:,是一個(gè)輕量級(jí)開源接口文檔管理系統(tǒng),致力于減少前后端溝通成本,提高團(tuán)隊(duì)協(xié)作開發(fā)效率,打造版的。官方網(wǎng)站演示網(wǎng)站作者博客官方群 PHPRAP,是一個(gè)PHP輕量級(jí)開源API接口文檔管理系統(tǒng),致力于減少前后端溝通成本,提高團(tuán)隊(duì)協(xié)作開發(fā)效率,打造PHP版的RAP。 更新記錄 【修復(fù)】修復(fù)PHP7.1下報(bào)db()函數(shù)缺少默認(rèn)參數(shù)的BUG 【修復(fù)】修復(fù)未登錄狀態(tài)下注冊(cè)頁(yè)不斷彈出修改默認(rèn)密碼的BU...
摘要:,是一個(gè)輕量級(jí)開源接口文檔管理系統(tǒng),致力于減少前后端溝通成本,提高團(tuán)隊(duì)協(xié)作開發(fā)效率,打造版的。官方網(wǎng)站演示網(wǎng)站作者博客官方群 PHPRAP,是一個(gè)PHP輕量級(jí)開源API接口文檔管理系統(tǒng),致力于減少前后端溝通成本,提高團(tuán)隊(duì)協(xié)作開發(fā)效率,打造PHP版的RAP。 更新記錄 【修復(fù)】修復(fù)PHP7.1下報(bào)db()函數(shù)缺少默認(rèn)參數(shù)的BUG 【修復(fù)】修復(fù)未登錄狀態(tài)下注冊(cè)頁(yè)不斷彈出修改默認(rèn)密碼的BU...
摘要:,是一個(gè)輕量級(jí)開源接口文檔管理系統(tǒng),致力于減少前后端溝通成本,提高團(tuán)隊(duì)協(xié)作開發(fā)效率,打造版的。官方網(wǎng)站演示網(wǎng)站作者博客官方群 PHPRAP,是一個(gè)PHP輕量級(jí)開源API接口文檔管理系統(tǒng),致力于減少前后端溝通成本,提高團(tuán)隊(duì)協(xié)作開發(fā)效率,打造PHP版的RAP。 更新記錄 【修復(fù)】修復(fù)PHP7.1下報(bào)db()函數(shù)缺少默認(rèn)參數(shù)的BUG 【修復(fù)】修復(fù)未登錄狀態(tài)下注冊(cè)頁(yè)不斷彈出修改默認(rèn)密碼的BU...
閱讀 1566·2021-09-22 15:52
閱讀 3472·2021-09-22 14:59
閱讀 2852·2021-09-02 15:12
閱讀 980·2021-08-20 09:35
閱讀 1585·2019-08-30 14:09
閱讀 2717·2019-08-30 13:56
閱讀 1656·2019-08-26 18:27
閱讀 3370·2019-08-26 13:37