Adapter 是用來(lái)解決一類(lèi)功能的多種實(shí)現(xiàn),如:支持多種數(shù)據(jù)庫(kù),支持多種模版引擎等。系統(tǒng)默認(rèn)支持的 Adapter 有:Cache
,Session
,WebSocket
,Db
,Store
,Template
和 Socket
。
可以通過(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)。
可以通過(guò) think.adapter
方法加載對(duì)應(yīng)的 Adapter,如:
let Template = think.adapter("template", "dot"); //加載名為 dot 的 Template Adapter
let instance = new Template(...args); //實(shí)例化 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)加載。
更多建議: