rrestjs

godb的session godb存儲session se封裝對respon

簡介

rrestjs是在expressjs代碼的基礎上開發的node.js框架(這樣可以減少很多bug,同時要感謝expressjs作者 visionmedia無私的奉獻),不過整個框架結構已經完全改變了,屬性以及方法定義也是全新的,可以說是一個全新的node.js開發框架(不僅局限於web頁面的輸出)。rrestjs命名源自:ROA-Restful,面向資源和restful是rrestjs的宗旨,和expressjs不同的是expressjs是利用路由機制的,而rrestjs則完全根據用戶請求的uri去找尋控制器。

特點

1、Restful模式:去掉了expressjs的app.get()路由機制,重新拆分客戶端請求的uri,直接載入指定模組和執行模組內的方法,如果出錯輸出500或404。比如用戶訪問/user/face,訪問頭像頁面,則rrestjs會根據拆分的uri去指定目錄require('user')模組,然後執行face方法,省去了正則路由判斷,提升性能。
2、原生node.js的API風格:沒有expressjs自己封裝的app.use等等,輸出一個HelloWorld只需如下代碼,降低了學習新代碼風格的成本:
var http = require('http'),
rrest = require('rrestjs'),
server = http.createServer(rrest(function (req, res) {
res.end('hello world');
})).listen(3000);
3、開發模式自動保存重啟:在開發模式下,支持像PHP那樣的寫代碼,保存自動重啟,放棄ctrl+c 然後 上+enter。
4、多進程共享session:多進程可以共享保存在記憶體中的session數據,而且以後部署上生產環境,只需載入不同配置檔案,無需改動代碼即可支持mongodb的session存儲
5、提高靜態檔案輸出性能:expressjs在靜態檔案輸出上由於加上Etag或last-modify快取,需要2次I/O操作,rrestjs在此基礎上做了2級快取,減少一次I/O操作,性能提升10%。
6、多進程多任務管理:可以讓多進程監聽多連線埠,做不同業務,由一個守護進程守護,萬一發現子進程意外掛掉,可以馬上喚醒它,並且還是繼續監聽之前的連線埠和做之前的業務。
7、封裝了mongodb連線池:封裝了mongodb的連線池,可以手動的設定連線池的大小,大大提高的效率和穩定性。
8、IP和資源白名單過濾:增加了白名單功能,方便項目上公網以後的調試和測試。
9、增加jade的html快取:增加html快取功能,加速大並發,高I/O的輸出jade模版,同時設定了更新快取鑰匙機制,防止快取重建時的雪崩情況。
10、增加deflate和gzip:根據content-type的屬性值,選擇性的使用delate或gzip壓縮數據回響給客戶端,因為圖片的gzip意義不大。
11、自動載入模組:根據自動載入例外的配置,去自動載入modules資料夾下的所有模組,不必一個個require了

主要功能

功能 rrestjs
架構思路 ROA,面向資源架構
封裝程度 輕度封裝,配置簡單,最小化污染命名空間,易於2次開發
自定義開發、生產環境 載入不同配置檔案
http,https伺服器 原生node.js API支持
Favicon 根據配置自動處理/favicon請求
IP過濾訪問 ip黑白名單,訪問路徑白名單
靜態檔案 自動回響靜態檔案
請求路由 Restful風格,拼裝URI
404、500 出錯自動回響404、500
Get參數 req.getparam獲取get請求的參數對象
DEL參數 req.delparam獲取get請求的參數對象
POST參數 req.postparam獲取get請求的參數對象
PUT參數 req.putparam獲取get請求的參數對象
檔案上傳 req.file獲取上傳的檔案對象
簡單session 支持記憶體存取session
多進程session 支持多進程存儲session同步共享
資料庫session 支持mongodb存儲session,並且無需修改代碼
客戶端IP位址 req.ip獲取客戶端請求地址
request封裝 對request對象進行封裝
response封裝 對response對象進行封裝
json 可以直接res.json回響json字元串
delate,gzip 根據配置檔案可以對回響進行delate和gzip壓縮
快取 etag,last modify, cache
模版 jade, ejs
模版快取 模版靜態快取,分頁快取多張
日誌功能 log4js,可以分等級分大小
多進程 內置ClusterPlus,可以多進程監聽多連線埠任務
容錯 可以自動重啟掛掉的子進程,並且還是監聽之前的連線埠,做之前的事情
高效開發 讓開發者像php那樣開發node.js檔案,免去頻繁手動重啟的麻煩
資料庫連線封裝 利用mongodb-native封裝了MongoDB資料庫的連線,只需配置自動連線,同時支持IP連線埠連線和字元串連線
資料庫連線池 增加連線池的概念,防止資料庫因過多連線而奔潰,同時可以提高db連線速度
css和js 整合壓縮css和js,讓請求更少,效率更高
less 支持lesscss的前端css樣式表
自動載入模組 根據配置自動載入指定資料夾下的模組,保存在rrestjs.mod對象中
自動部署 會根據配置檔案自動在baseDir目錄下生成各類快取靜態檔案目錄
檢測 在啟動套用的時候,將自動檢測配置檔案是否完好合法,加快開發者debug速度

相關詞條

相關搜尋

熱門詞條

聯絡我們