十大 Node.js 的 Web 框架
Sails.js 就像是 Node.js 平臺上的 Rails 框架。這是一個可靠可伸縮的開發框架,面向服務的架構,提供資料驅動的 API 集合。用來開發多玩家遊戲、聊天應用和實時面板引用非常方便,也可用於開發企業級 Node.js 應用。
控制器示例程式碼:
module.exports = {
hi: function (req, res) {
return res.send("Hi there!");
},
bye: function (req, res) {
return res.redirect("http://www.OSChina.net");
}
};
Hapi.js 是一個用來構建基於 Node.js 的應用和服務的富框架,使得開發者把重點放在便攜可重用的應用邏輯而不是構建架構。內建輸入驗證、快取、認證和其他 Web 應用開發常用的功能。
示例程式碼:
var Hapi = require('hapi');
// Create a server with a host and port
var server = new Hapi.Server('localhost', 8000);
// Add the route
server.route({
method: 'GET',
path: '/hello',
handler: function (request, reply) {
reply('hello world');
}
});
// Start the server
server.start();
Express 是一個簡潔而靈活的 Node.js Web應用框架, 提供一系列強大特性幫助你建立各種 Web 應用。Express 不對 Node.js 已有的特性進行二次抽象,我們只是在它之上擴充套件了 Web 應用所需的功能。豐富的 HTTP 工具以及來自 Connect 框架的中介軟體隨取隨用,建立強健、友好的 API 變得快速又簡單。
示例程式碼:
var express = require ('express')
var app = express()
app.get('/', function (req, res) {
res.send('Hello World')
})
app.listen(3000)
Kraken 基於 express 構建,實現對環境變數的感知、動態配置、高階中介軟體和應用生命週期的事件通知。
基本使用方法:
'use strict';
var express = require('express'),
kraken = require('kraken-js');
var app = express();
app.use(kraken());
app.listen(8000);
Meteor 是一組新的技術用於構建高質量的 Web 應用,提供很多現成的包,可直接在瀏覽器或者雲平臺中執行。
一種全棧 Javascript 開發架構,它的名稱來自於:MongoDB,Express,Angular,Node。
使用方法:
$ sudo npm install -g mean-cli
$ mean init yourNewApp
Koa 是下一代的 Node.js 的 Web 框架。由 Express 團隊設計。旨在提供一個更小型、更富有表現力、更可靠的 Web 應用和 API 的開發基礎。
Koa可以通過生成器擺脫回撥,極大地改進錯誤處理。Koa核心不繫結任何中介軟體,但提供了優雅的一組可以快速和愉悅地編寫伺服器應用的方法。
示例程式碼:
var koa = require('koa');
var app = koa();
// logger
app.use(function *(next){
var start = new Date;
yield next;
var ms = new Date - start;
console.log('%s %s - %s', this.method, this.url, ms);
});
// response
app.use(function *(){
this.body = 'Hello World';
});
app.listen(3000);
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 傳送服務)
flatiron 是一款 Node.js 和瀏覽器的框架元件,是一款構建現代化 web 應用適應性很強的框架。flatiron 提供比 Rails 類元件有更豐富配置的框架元件,允許開發者自己新增他們想要的功能元件。
LoopBack 是基於 Node.js 的一個開源的 API 框架,可以讓 Node.js 應用方便的跟各種裝置通過 API 進行互聯。