NodeJS也就是Node,是眾所周知的使用javascript構建Web應用框架,它啟動一個服務器非常簡單,如下:
var http = require('http');
http.createServer(function (request, response) {
response.writeHead(200, {'Content-Type': 'text/plain'});
response.end('Hello World\n');
}).listen(8080);
console.log('Server started');
但是Node.js僅僅是啟動了一個基於Http協議的服務器,而Web開發在其之上還需要很多庫包支持,下面列舉了基於Node基礎上的七個小型Web框架:
Express
Express是一個輕量Web框架,能夠建立大型或小型輕量的Web應用,與NodeJS Angular.js和MongoDB合稱為Mean全棧開發工具,被以下網站應用:
- MySpace
- Storify
- Countly
博客平台 'Ghost' 也是基於Express構建。
Express是Node.js用於Web應用的工具包,能夠創建基於http的端口,處理cookie等,提供一切你可能需要建立自己的Web服務器的庫包,主要有:
- 1. 簡單的REST路由:如app.get(/account/:id, function(req, res){ /* req.params('id') is available */ });
- 通過Jade的簡單模板化
- 自動化的http處理。
- 支持異步處理請求響應的中間件。
- 分析POST請求體
- 防止XSS攻擊
- 錯誤處理
Flatiron
Flatiron 是來自Nodejitsu支持的項目, 它為Node.js開發提供了很多好用資源和工具包,提供了依賴注入和反轉控制等功能 還有流式控制等(大型文件上傳),路由, 模板和校驗等。
使用來自Nodejitsu同一標准構建的高質量高性能標准組件工具幫助你建立解耦的規模應用,也是一個全棧Web應用程序開發框架,它將很多工具封裝結合在一起,使得構建基於流的應用開發更容易。
Koa
koa實際初始是由Express開發和維護的一個Web框架,一個Koa應用是一個包含一組中間件生成器,類似Ruby's Rack, Connect, 等等 – 是一種基於低層次中間件層次的高級“糖”語法,提高了互用性,魯棒性,並使得編寫中間件更愉快 。支持 content-negotiation, cache 刷新和代理支持。
total.js
total是一個創建Nodejs應用的現代小型web框架,主要為可擴展可伸縮的應用程序設計,包括支持WebSockets 的完美URL路由,
restify
能夠構建Node.js的REST API,它在純粹構建REST API可能比Express更加吸引人。不像Express除了REST以外還有模板和渲染等其他功能,Restify的存在是為了讓你打造"嚴格"的API服務,支持DTrace平台
SocketStream
專門為構建實時Web,由於已經將基礎封裝,SocketStream 能夠解放你,讓你關注構建你的社交或聊天應用,或多用戶游戲,或者任何你需要實時流數據顯示的應用,所有口味都能滿足(e.g. Vanilla JS vs CoffeeScript, Stylus vs Less)
Sails.js
Sails是實時的MVC框架,能夠更易於定制企業級別的Node.js應用. 它設計類似Ruby on Rails,但是支持更現代應用的需求:: 數據驅動data-driven APIs ,面向服務架構SOA,也特別適合構建實時聊天 多用戶游戲。