NodeJS学习笔记: RESTful —— 为本系列做个小结
前言
本人不是技術(shù)專家,該筆記只是從使用語(yǔ)言進(jìn)行開(kāi)發(fā)的層面上記錄一些體會(huì),不包含也不想嘗試從源碼或者更深的層次去討論語(yǔ)言本身的優(yōu)劣。文章內(nèi)容是筆者的個(gè)人感悟,既不保證正確性,也不保證別人能看懂。
這是該筆記的第三篇,用來(lái)對(duì)最近的NodeJS學(xué)習(xí)做一個(gè)小結(jié),短期內(nèi)恐怕我不會(huì)再更新它了。
第一篇在這里 NodeJS學(xué)習(xí)筆記: require, exports 和 module.exports 的初印象
第二篇在這里 NodeJS學(xué)習(xí)筆記: 簡(jiǎn)述Express的中間件multer的使用
先談一下本次學(xué)習(xí)的收獲:
1- 對(duì)于非阻塞模式的開(kāi)發(fā)有了相應(yīng)的意識(shí),即從覺(jué)得很難讀懂源碼到現(xiàn)在覺(jué)得一切本該如此,這說(shuō)明我的思維方式改善了。
2- NodeJS是很有趣的東西,但是暫時(shí)不適于開(kāi)發(fā)商業(yè)的應(yīng)用。誠(chéng)然,NodeJS與Express都提供了較好的技術(shù)支持與規(guī)范的源碼,但是太多來(lái)自npm的模塊做不到這一點(diǎn),也就是說(shuō)如果不去更新依賴的資源那么可能存在未知的bug,而更新的代價(jià)則是發(fā)生各種錯(cuò)誤。
3- 綜上,我覺(jué)得angular之類的技術(shù)在相當(dāng)?shù)囊欢螘r(shí)期內(nèi)更有活力,至于后端我還是暫時(shí)要回到PHP領(lǐng)域。哦~PHP7
引子
學(xué)習(xí)NodeJS的原因是我在嘗試基于MeanJS框架的基礎(chǔ)上進(jìn)行開(kāi)發(fā),所以我要先熟悉NodeJS, ExpressJS 和 MongoDB。當(dāng)時(shí)使用的MeanJS框架是0.4.2,現(xiàn)在已經(jīng)有了0.5.beta了。其實(shí)我大約半年以前就接觸過(guò)這個(gè)框架的更早期版本,大致的感覺(jué)如下:
早期版本
在前端和后端分別實(shí)現(xiàn)了mvc架構(gòu),不錯(cuò)的封裝,但是使用上稍有不便。目錄結(jié)構(gòu)類似:
/app/modules/moduleA (比如articles)/controllers/models/services... /public/modules... (和上面差不多,不廢話了)0.4.2
結(jié)構(gòu)改善了,看起來(lái)舒服多了
/modules/moduleA (比如articles) /client.../server.../test...當(dāng)然實(shí)際開(kāi)發(fā)的時(shí)候太多的近似名稱也是挺讓人頭疼了。
0.5.beta
前端貌似做了一些優(yōu)化,后端沒(méi)什么太多的變動(dòng)。以前的示例代碼只有oauth, users (包含頭像上傳), menu 和 articles,現(xiàn)在又增加了chat。新手其實(shí)可以fork它從而更快的入手。
正文
我覺(jué)得單獨(dú)評(píng)價(jià)RESTful的話并沒(méi)有什么價(jià)值,必須考慮和angularJS或者app開(kāi)發(fā)結(jié)合的情況下。雖然如Mongo之類的數(shù)據(jù)庫(kù)實(shí)現(xiàn)了RESTful接口,但是我覺(jué)得沒(méi)人喜歡從瀏覽器端直接發(fā)起此類請(qǐng)求。
對(duì)于單純的RESTful,我覺(jué)得以下就夠了:
然后只要增加model來(lái)制定數(shù)據(jù)有效性規(guī)則和規(guī)定model對(duì)應(yīng)的訪問(wèn)規(guī)則就可以了。
尾聲
抽象RESTful框架其實(shí)是很簡(jiǎn)單的,一個(gè)針對(duì)RESTful請(qǐng)求的后端框架應(yīng)該包括以下的部分:
1-安全驗(yàn)證:確認(rèn)訪問(wèn)者的身份保證安全的訪問(wèn)
2-數(shù)據(jù)讀寫(xiě):包括數(shù)據(jù)庫(kù)部分和緩存部分
3-文件處理:能夠?qū)ξ募蟼鬟M(jìn)行處理
4-易于擴(kuò)展的接口:比如socket支持,現(xiàn)在用來(lái)越多的地方用到了;oauth,網(wǎng)上支付接口等。
1和2是必不可少的。
好了,就這樣,我要回去研究php了。
總結(jié)
以上是生活随笔為你收集整理的NodeJS学习笔记: RESTful —— 为本系列做个小结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Spring Boot——开发新一代Sp
- 下一篇: [NodeJS] 优缺点及适用场景讨论