node.js上除了Express還有哪些好用的web開發框架?
一、node.js上除了Express還有哪些好用的web開發框架
這個就無需再介紹了吧, 幾乎已經成為閉眼推薦的首位, 有點在于簡單靈活, 缺陷也在于過于簡單, 相當于每個功能都需要自己選擇不同組件搭建, 雖然有各自腳手架幫助, 但對于開發大一點的系統還是缺乏必要的代碼框架, 光搭建整合基礎框架就會花不少時間, 對于新上手node.js不久的筆者而言,自由靈活也意味著容易犯錯, 較好有類似Djongo/ThinkPHP那樣out-of-box即開即用的開發框架快速上手而不是坐而論道.
優點: 插件眾多, 簡單, 自由, 豐儉由人, 適合于簡單業務邏輯模型
缺點: 缺少規范性, 需要自己選擇搭配的組件太多, 不太適合應用復雜的業務.
KoaExpress基于ES6的升級版, async/await解決ES5 callback hell的痼疾, 但是選擇框架不僅僅是框架本身, 同時還要看插件擴展的豐富和成熟度, 因為沒有用過擔心后面遇坑填不平而放棄, 做研究可以大膽, 做產品必須謹慎.
優點: ES6語法, 邏輯易懂
缺點: 剛開始應用不久, 擔心有擴展不足和不兼容問題
Meteor一個完全統一前后臺開發的一站式框架, 從后臺數據庫到前端view全部包含在內, 特別適合于重度依賴websocket的SPA(單頁面應用)開發, 國外流行的Asana就是完全采用Meteor框架開發.
優點:一站式解決方案, 前后臺一體開發, 強大的websocket + mongoDB支持
缺點:自由度不夠, 和傳統的Web框架概念差異較大.
socketstream如果說RESTful是Ajax的概念基礎, socketstream實際上更接近于早期RPC的思路, 將函數調用(function name + parameters)建構在websocket協議層之上, 例如下面這段代碼其實就是調用遠程函數計算.
//– server side in /server/rpc/app.js
exports.actions = function(req, res, ss){
// return list of actions which can be called publicly
return {
square: function(number){
???? res(number * number);
?? }
?}
}
//– client request
ss.rpc(‘app.square’, 25)
優點: 完全web socket, 函數+參數==>返回值概念簡單
缺點:和主流的RESTful概念偏離較大, 很少看到實際應用案例
Sails.js這是本文的主角, 相當于針對典型應用框架所需組件在Express基礎上的集成封裝, 把日常開發常用的功能都給你集成好了, 開箱即用, 完全兼容Express的middleware, 如果了解ThinkPHP就更容易上手了, RoR / Convention over Configuration的概念可以立即進入實際業務開發, 反正做什么事情應該怎么做人家都給你規定好了, 可以從實驗代碼逐步迭代到中大項目的生產代碼.
除了傳統的HTTP RESTful外還同時支持websocket – 同一個請求協議既可以通過Ajax發送, 也可以通過websocket發送, 這一點讓人贊賞.
優點: 開箱即用的全功能Express增強框架, 內置支持websocket
缺點:(據說)ORM性能不好
延伸閱讀:
二、HTML是什么
HTML(Hyper Text Mark-up Language )即超文本標記語言,是 WWW 的描述語言,由 Tim Berners-lee提出。設計 HTML 語言的目的是為了能把存放在一臺電腦中的文本或圖形與另一臺電腦中的文本或圖形方便地聯系在一起,形成有機的整體,人們不用考慮具體信息是在當前電腦上還是在網絡的其它電腦上。這樣,你只要使用鼠標在某一文檔中點取一個圖標,Internet就會馬上轉到與此圖標相關的內容上去,而這些信息可能存放在網絡的另一臺電腦中。 HTML文本是由 HTML命令組成的描述性文本,HTML 命令可以說明文字、 圖形、動畫、聲音、表格、鏈接等。 HTML的結構包括頭部 (Head)、主體 (Body) 兩大部分。頭部描述瀏覽器所需的信息,主體包含所要說明的具體內容。

猜你喜歡LIKE
相關推薦HOT
更多>>
mysql怎么查看連接池是否已滿?
一、mysql怎么查看連接池是否已滿1.查看連接數配置(MySQL服務器允許的最大連接數16384)show variables like ‘%max_connections%’2.查看當前...詳情>>
2023-10-17 21:20:19
什么是職場情商,如何提高?
什么是情商?情商是一個 20 世紀 90 年代作為學術話題出現的概念,并迅速成為商業心理學和職場動態研究的重要組成部分。它通常被稱為 EQ(情商...詳情>>
2023-10-17 20:16:30
vector, list, map等容器使用場合是什么?
一、vector, list, map等容器使用場合vector適用于對象簡單,變化較小,并且頻繁隨機訪問的場景。list適用經常進行插入和刪除并且不經常隨機訪...詳情>>
2023-10-17 19:45:03
數據挖掘中涉及的關聯規則在實際生活中的應用有哪些?
一、數據挖掘中涉及的關聯規則在實際生活中的應用關于關聯規則分析,這篇文章可以認真學習一下,講的比較全面,關聯規則分析還在零售、快消、電...詳情>>
2023-10-17 18:40:06熱門推薦
sql server2012r2所在服務器做端口限制,需要開放什么端口才能繼續訪問數據庫?
沸Oracle有什么優勢和劣勢?
熱數據庫聚集索引非聚集索引實現上有哪些區別?
熱數據庫(如oracle、mysql)及編程語言(php、python、perl、lisp)的區別?
新CSS 隱藏頁面元素有哪些方法?
除了cx_Oracle,python還可以通過什么方式訪問Oracle數據庫?
SQL開啟事務處理的語句 START TRANSACTION 和BEGIN TRAN的區別?
Android適配你需要學習哪些?
開發web應用,好的開發流程是怎么樣的?
為什么說Gradle是Android進階繞不去的坎?
mysql怎么查看連接池是否已滿?
WHERE中有很多IN判斷怎么提速?
軟件開發要遵循哪些事項?
有了innodb buffer pool為什么要有redis?
技術干貨






