<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                [TOC] # Node 框架 Web 和應用開發的風景變化是非常快速的,開發人員轉向快速框架和清潔項目交付(clean project delivery)。使用 node 框架的最大優勢是提供了高層級結構的盒子,你可以關注擴展您的應用程序而不是努力在建設上支出。 框架提供了多樣的特性,工作在不同的底層,試圖解決構建實時的常見問題,并解決了可伸縮的和復雜的 Web 應用程序在速度上的問題。在這篇文章里討論的框架是當今市場上最好的 node.js 框架。 ## 整體架構 大多數 Node.js應用程序的整體架構: ![Node.js Application Architecture](https://box.kancloud.cn/d64e22b815f5008bd16dd300e6b93a10_1024x432.png) ![Vue 網站示例](https://box.kancloud.cn/b297e06dfccfca47c518d8bbbbd67241_681x243.png) ## AdonisJs 官網:https://adonisjs.com/ ## Compound.js 官網:http://compoundjs.com ## Derby.js 官網:http://derbyjs.com/ Derby.JS 跟它的直接競爭對手 Meteor、Mean.io、以及 Mojito 一樣,也是一個全棧框架。它運行在 Nodejs + mongo + Redis 的上層。Derby 主要部分是一個叫做 Racer 的數據同步引擎,它能夠讓數據在數據庫、服務器和瀏覽器之間的同步變得輕而易舉。 Racer 的確能夠讓基于 Derby 框架的應用運行地更快,無論是在瀏覽器端還是服務器端,對于單頁面應用來說,它都是一個完美的選擇方案。Derby 經常被用來和業界老大 Meteor 進行比較,Meteor 項目已經開發了一段很長時間,因而能夠提供更多的開箱即用的功能,使得在更短時間內開發復雜的 web 應用變得更加容易。 而 Derby 更適合于需要更快運行速度的應用,并且它的模塊化方式能夠讓應用更靈活,更容易擴展。Derby 最近的發展有些緩慢,但它并沒有出局,仍有改寫 Nodejs 全棧框架游戲規則的潛力。 ## Egg.js 官網:https://eggjs.org/zh-cn/ 核心的動態機制,可能會讓你懵逼,但是它強制性的約定,寫起來還是很愉快的。 ## Express.js 官網:http://www.expressjs.com.cn Express 框架提供了對 node.js 原生 API 的比較好的封裝,從而使開發者更加容易地使用node.js。 Express 框架提供了用來開發強壯的 web/移動應用,以及 API 的所有功能。 通過使用 Node Express,你可以使用更少的代碼來實現功能。至少通過使用 Node Express,你可以實現中間件來響應 http 請求,可以定義路由表來定義對不同請求的響應函數,還可以使用模板引擎來輸出 html 頁面。 目前 StrongLoop 對它提供支持。 示例: ``` // express_demo.js 文件 var express = require('express'); var app = express(); // express 是工廠函數,不是構造函數。它應該像普通函數一樣調用,而不是與 new 一起使用。 app.get('/', function (req, res) { res.send('Hello World'); }) var server = app.listen(8081, function () { var host = server.address().address var port = server.address().port console.log("應用實例,訪問地址為 http://%s:%s", host, port) }) ``` > [Koa/Express 定義含有冒號 (:) 的路由](https://github.com/isayme/blog/issues/40) > [express() or new express()](https://stackoverflow.com/questions/53089495/express-or-new-express) # foalts https://github.com/FoalTS/foal https://foalts.org ## Fastify 官網:https://www.fastify.io/ 一個致力于用最少的開銷和強大的插件架構提供最佳開發體驗的 web 框架。它受到 Hapi 和Express 的啟發,號稱是目前最快的 web 框架之一。 ## Flatiron.js 官網:http://flatironjs.org/ Node.js MVC 框架,flatiron 是一款 Node.js 和瀏覽器的框架組件,是一款構建現代化 web 應用適應性很強的框架。flatiron 提供比 Rails 類組件有更豐富配置的框架組件,允許開發者自己添加他們想要的功能組件。 通過一個叫 Plates 的模板引擎,Flatiron 能夠支持模版語言,然而數據管理是通過 json 實現的,并能與任何一種數據庫一起使用。Flatiron 現在由 Nodejitsu 以及其他的社區成員在進行維護,并做的相當不錯,是一個不那么流行卻值得一看的框架。 ## Feathersjs 官網:https://feathersjs.com/ A framework for real-time applications and REST APIs ## Hapi 官網:http://hapijs.com/ Hapi 是為數不多的不依賴于 Express 的 node.js 框架。 Hapi 致力于完全的分離 node HTTP 服務器、路由以及業務邏輯,并更多的聚焦于如何盡可能的通過配置而非代碼來控制東西。 Hapi 最初是由 Eran Hammer 以及在 Walmart labs 的團隊為了工作需要開發的。其后便以極快的速度受到了歡迎,現在已在 MIT 許可下成為一個開源的框架,能夠免費的被下載和使用。 迪士尼、雅虎、Pebble、beats 音樂以及 Walmart 這樣的公司都在使用 Hapi 作為他們旗下一個或多個項目的網絡應用框架,它的影響力便可見一斑了。 ## koa2 官網:http://koajs.com 開發 koa 的人員基本來自 Express 開發團隊,TJ Holowaychuk 是 koa 開發團隊的領導者。雖然 koa 大部分開發人員來自 Express,但是他們使用了完全不同的技術來開發 koa,并且 koa 正成為 Express 一個強有力的競爭對手。 koa 框架的核心是 ES6 的 generator。koa 使用 generator 來實現中間件的流程控制,使用try/catch 來增強異常處理,同時在 koa 框架中你再也看不到復雜的 callback 回調了。 koa 框架本身非常小,只打包了一些必要的功能,但是它本身通過良好的模塊化組織,讓開發人員可以按照自己的想法來實現一個擴展性非常好的應用。 ``` // 導入 koa,和 koa 1.x 不同,在 koa2 中,我們導入的是一個 class,因此用大寫的 Koa 表示: const Koa = require ('koa'); // 創建一個Koa對象表示web app本身: const app = new Koa(); // 對于任何請求,app將調用該異步函數處理請求: app.use(async (ctx, next) => { await next(); ctx.response.type = 'text/html'; ctx.response.body = '<h1>Hello, koa2!</h1>'; }); // 在端口3000監聽: app.listen(3000); console.log('app started at port 3000...'); ``` > [《Koa2進階學習筆記》](https://chenshenhai.github.io/koa2-note/) ## KeystoneJS 官網:http://keystonejs.com/zh/ KeystoneJS,以 Express 和 MongoDB 為基礎搭建的 Node.js CMS 和 Web 應用程序平臺。 具有以下特性: Express.js 和 MongoDB:Keystone 會為你配置 express(node.js 上的 Web 服務器),用 Mongoose(領先的 ODM 包)連接你的 MongoDB 數據庫 動態路由:Keystone 從設置 MV* 程序的最佳實踐入手,讓你管理模板、視圖和路由變得更容易 數據庫域:ID、String、Boolean、Date 和 Number 是數據庫的構件。Keystone 以它們為基礎實現了在現實工作中更實用的域類型,比如 name、email、password、address、image 和 relationship (及其它) 自動生成管理員界面:不管你在搭建應用程序,或者在生產環境中作為數據庫內容管理系統時是否用它,Keystone 的管理員界面都能節省你的時間,讓你管理數據更容易 編碼更簡單:有時即便做的事情簡單,異步代碼也會變得復雜。Keystone讓簡單的事情(比如在視圖中顯示之前加載數據)保持簡單 表單處理:要驗證表單、上次圖片或用一行代碼更新數據庫?基于你已經定義的數據模型,Keystone 可以做到 會話管理:Keystone 自帶了會話管理和認證功能,包括密碼域的自動加密 發送 Email:借助 Keystone,你的應用程序可以輕松地設置、預覽和發送基于模板的 email。它還集成了 Mandrill (Mailchimp 卓越的事務性 email 發送服務) 其它類似優秀框架還有:[total.js](http://www.totaljs.com/), [Geddy.JS](http://www.geddyjs.org/), [Locomotive](http://locomotivejs.org/), [Restify](http://restify.com/)。 ## LoopBack 官網:https://strongloop.com/projects/ 基于 Node.js 的一個開源的 API 框架,可以讓 Node.js 應用方便的跟各種設備通過 API 進行互聯。 ## midway 官網:https://midwayjs.org/midway/ 面向未來的 Web 全棧應用開發框架 ## micro 官網:https://github.com/zeit/micro Asynchronous HTTP microservices ## Moleculer [Moleculer](https://moleculer.services) is a fast, modern and powerful microservices framework for[Node.js](https://nodejs.org/en/). It helps you to build efficient, reliable & scalable services. Moleculer provides many features for building and managing your microservices. **Documentation**:[https://moleculer.services/docs](https://moleculer.services/docs) ## MEAN 官網:http://mean.io/ Mean 是 Mongo DB,Express,Angular 和 Node.js 捆綁在一起的組合。基本上說只要有它,你就擁有了數據庫層,服務器端和網頁前端的整套工具,足以開發所有類型的現代網絡應用。 Mean 是一個完整獨立的包,它涵蓋了應用開發的所有方面。尤其適合于那些需要快速開始開發的人。它內置多種技術而且在聯合使用時變現非常好。可以用于創建任意大小和復雜度的應用。 使用 Mean,開發者可以避免經歷混合和匹配不同的技術棧。通過 mean 棧,你可以減少安裝和配置MongoDB,Express,Angular 和 Node.js需要的時間。Mean.io 的另一個巨大好處就是所有的棧都使用 JavaScript,服務器端 Express 對MongoDB 的訪問(json)和通多 Angular 從 Node 到客戶端。 在這里 - mean.io了解更多Mean.io的相關信息。 還有一個名為 mean.js 的 mean 分支也相當流行。 ## Meteor.js [Meteor.js](https://www.meteor.com/) 是一組新的技術用于構建高質量的 Web 應用,提供很多現成的包,可直接在瀏覽器或者云平臺中運行。 Meteor 框架是 Node.js 上最出色的全棧框架。項目在 GitHub 上有 28K+ 的贊,擁有大量的自定義包,龐大的社區支持,非常好的教程和文檔。在這個領域 Meteor 毫無疑問是王者,你可以用它構建純 Javascript 的實時 Web 和 手機應用。 此外,Meteor特別適合于那些想要構建實時web app的開發人員。所有從數據庫到模板的app層都會自動更新。 包: https://atmospherejs.com/ ## Nestjs 中文文檔:[https://docs.nestjs.cn](https://docs.nestjs.cn/) 英文官方文檔:[https://docs.nestjs.com](https://docs.nestjs.com/) [讓我們用 Nestjs 來重寫一個CNode(上)](https://www.jianshu.com/p/f0a4944e8fb9) ## Nx [https://nx.dev/angular/getting-started/what-is-nx](https://nx.dev/angular/getting-started/what-is-nx) ## restify [restify](http://restify.com/) is a framework, utilizing [connect](https://github.com/senchalabs/connect) style middleware for building REST APIs. ## Sails.js 官網:https://sailsjs.com Sails.js 可以幫助你很容易的構建企業級的 Node.js 應用程序。它被設計成類似 Ruby on Rails 的 MVC 架構,但風格更現代,支持面向數據的 Web 應用程序開發,特別適合用于實時的功能實現,如聊天。 Sails.js API 的腳手架和 Rails 的腳手架不同。它會為你的模型自動生成一個 RESTful JSON API,它支持 HTTP 和 WebSocket。默認情況下,你創建的每個控制器,都會獲得自動創建的基本 CRUD 操作。 ## Socket Stream 官網:https://github.com/socketstream/socketstream 一個有趣的框架,專注于客戶端和服務端數據的快速同步,它致力于前后端數據的實時更新。 它最大的特點是不嚴格要求你使用指定的客戶端技術,也不限定數據庫的 ORM。我趨向于將它和有同樣功能的兄弟項目 Sail.js 做比較,它更適合做單頁 web 應用,多用戶游戲,聊天客戶端,網絡應用,交易平臺以及所有的需要將數據從服務端實時推送到客戶端的應用。 服務端和客戶端使用 JSON 來傳輸數據,比較理想的是使用 websockets 在服務端事件發生時自動將數據推送到客戶端,Socket stream 是由 Owen Barnes 創建,現在由 Paul Jensen 和團隊維護,他們的工作讓這個框架得到了應有的榮耀。 SocketStream framework 在最近幾月獲得了很好的發展,未來一片光明。 ## strapi 官網:https://strapi.io/ The open source Headless CMS Front-End Developers love. ## [Total.js](https://www.totaljs.com/) # 微服務框架 [Moleculer](https://moleculer.services/) # 參考 [node 庫](http://www.fly63.com/nav/more/13)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看