[TOC=2,3]
Adapter 是用來(lái)解決一類(lèi)功能的多種實(shí)現(xiàn),如:支持多種數(shù)據(jù)庫(kù),支持多種模版引擎等。系統(tǒng)默認(rèn)支持的 Adapter 有:`Cache`,`Session`,`WebSocket`,`Db`,`Store`,`Template`?和?`Socket`。
## 創(chuàng)建 Adapter
可以通過(guò)命令?`thinkjs adapter [type]/[name]`?來(lái)創(chuàng)建 Adapter,如:
~~~
thinkjs adapter template/dot
~~~
創(chuàng)建一個(gè)名為?`dot`?的 Template Adapter,創(chuàng)建的文件路徑為?`src/common/adapter/template/dot.js`。文件內(nèi)容類(lèi)似如下:
~~~
export default class extends think.adapter.template {
/**
* init
* @return {[]} []
*/
init(...args){
super.init(...args);
}
}
~~~
如果創(chuàng)建的類(lèi)型之前不存在,會(huì)自動(dòng)創(chuàng)建一個(gè) Base 類(lèi),其他類(lèi)會(huì)繼承該類(lèi)。
## 加載 Adapter
可以通過(guò)?`think.adapter`?方法加載對(duì)應(yīng)的 Adapter,如:
~~~
let Template = think.adapter("template", "dot"); //加載名為 dot 的 Template Adapter
let instance = new Template(...args); //實(shí)例化 Adapter
~~~
## 使用第三方 Adapter
加載 Adapter 時(shí),系統(tǒng)會(huì)自動(dòng)從?`src/common/adapter`?目錄和系統(tǒng)目錄查找對(duì)應(yīng)的 Adapter,如果引入第三方的 Adapter,需要將 Adapter 注冊(cè)進(jìn)去,否則系統(tǒng)無(wú)法找到該 Adapter。
可以通過(guò)?`think.adapter`?方法注冊(cè)第三方的 Adapter,如:
~~~
let DotTemplate = require("think-template-dot");
think.adapter("template", "dot", DotTemplate);
~~~
將文件存放在?`src/common/bootstrap/`?目錄下,這樣服務(wù)啟動(dòng)時(shí)就會(huì)自動(dòng)加載。
- 快速入門(mén)
- 介紹
- 創(chuàng)建項(xiàng)目
- 項(xiàng)目結(jié)構(gòu)
- 代碼規(guī)范
- 升級(jí)指南
- 進(jìn)階應(yīng)用
- 模塊
- 控制器
- 視圖
- 配置
- 路由
- 模型
- 介紹
- 事務(wù)
- 關(guān)聯(lián)模型
- Mysql
- MongoDB
- SQLite
- Adapter
- 介紹
- Cache
- Session
- WebSocket
- Template
- 擴(kuò)展功能
- thinkjs 命令
- 靜態(tài)資源訪問(wèn)
- Middleware
- Service
- Cookie
- 錯(cuò)誤處理
- 錯(cuò)誤信息
- 數(shù)據(jù)校驗(yàn)
- 國(guó)際化
- 路徑常量
- REST API
- 定時(shí)任務(wù)
- 線上部署
- 推薦模塊
- API
- think
- think.base
- think.http.base
- http
- controller
- rest controller
- model
- model.mongo
- middleware
