1. 程式人生 > >十大 Node.js 的 Web 框架

十大 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 應用,提供很多現成的包,可直接在瀏覽器或者雲平臺中執行。

meteor

一種全棧 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 進行互聯。