基於Promise的Node.js MVC框架——ThinkJS 1.0釋出

李鬆峰發表於2014-09-22

enter image description here

介紹

thinkjs是奇舞團開源的一款Node.js MVC框架,該框架底層基於Promise來實現,很好的解決了Node.js裡非同步回撥的問題。thinkjs具有如下的特性:

  • 支援Http、命令列、WebSocket、Restful等多種訪問方式
  • C(Core) + B(Behavior) + D(Driver)架構
  • 高度封裝的Model,無需手工寫sql語句
  • 封裝了DB、Session、Cache等功能
  • 開發模式下修改後立即生效

由來

Node.js下的框架莫過於express了,但express並沒有解決非同步帶來的開發不便的問題,同時express提供的功能過於簡單,實際專案中要寫很多程式碼。雖然koa框架使用es6 generator function解決了一些非同步帶來的問題,但需要在非穩定版0.11.x下才能執行。

鑑於此,thinkjs底層使用Promise來解決非同步巢狀的問題,同時參考了優秀的PHP框架ThinkPHP,讓Node.js下開發更加簡單高效。

快速使用

安裝thinkjs非常簡單,使用如下的方式:

npm install -g thinkjs-cmd

安裝完成後,系統下就有thinkjs命令了,可以通過下面的命令快速建立專案:

# 在合適的位置建立一個新目錄,new_dir_name為你想建立的資料夾名字
mkdir new_dir_name; 
# 通過thinkjs命令建立專案
thinkjs new_dir_name
專案建立完成後,如果當前環境有瀏覽器,會自動開啟瀏覽器訪問 http://127.0.0.1:8360, 看到hello thinkjs表示專案建立成功了。

生成的目錄結構如下:

├── App
│   ├── Common
│   │   └── common.js    ---- 通用函式檔案,一般將專案裡的一些全域性函式放在這裡
│   ├── Conf
│   │   └── config.js    ---- 專案配置檔案
│   ├── Lib
│   │   ├── Behavior     ---- 行為類存放位置
│   │   ├── Controller
│   │   │   └── Home
│   │   │       └── IndexController.js   ---- 邏輯控制類
│   │   └── Model        ---- 模型類
│   ├── Runtime          ---- 執行時的一些檔案
│   │   ├── Cache        ---- 快取目錄
│   │   ├── Data         ---- 資料目錄
│   └── View
│       └── Home
│           └── index_index.html      ---- 模版檔案,預設使用ejs模版引擎
├── ctrl.sh              ---- 專案啟動、停止指令碼
└── www
    ├── index.js         ---- 入口檔案
    └── resource         ---- 靜態資源目錄

並且預設為開發模式,該模式下檔案修改後立即生效,不用重啟Node.js服務。

更多

enter image description here

相關文章