<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                [TOC=2,4] `think.http.base`繼承自?[think.base](https://thinkjs.org/zh-CN/doc/2.0/api_think_base.html)?類,該類為含有 http 對象處理時的基類。middleware, controller, view 類都繼承自該類。 ##### 使用 ES6 語法繼承該類 ~~~ export default class extends think.http.base { /** * 初始化方法,實例化時自動被調用,不要寫 constructor * @return {} */ init(){ } } ~~~ ##### 使用普通的方式繼承該類 ~~~ module.exports = think.Class(think.http.base, { init: function(){ } }); ~~~ ### 屬性 #### http 封裝的 http 對象,包含的屬性和方法請見?[API -> http](https://thinkjs.org/zh-CN/doc/2.0/api_http.html)。 ### 方法 #### config(name, value) * `name`?{String} 配置名稱 * `value`?{Mixed} 配置值 讀取或者設置配置,value 為?`undefined`?時為讀取配置,否則為設置配置。 該方法不僅可以讀取系統預設值的配置,也可以讀取項目里定義的配置。 `注`:不可將當前請求的用戶信息作為配置來設置,會被其他用戶給沖掉。 ~~~ export default class extends think.controller.base { indexAction(){ //獲取配置值 let value = this.config("name"); } } ~~~ #### action(controller, action) * `controller`?{Object | String} controller實例 * `action`?{String} action名稱 * `return`?{Promise} 調用 controller 下的 action,返回一個 Promise。自動調用`__before`和`__after`魔術方法。 如果 controller 是字符串,則自動去尋找對應的 controller。 ~~~ //調用當前模塊下controller里的action export default class extends think.controller.base { * indexAction(){ //調用user controller下的detail方法 let value = yield this.action("user", "detail"); } } ~~~ ~~~ //跨模塊調用controller里的action export default class extends think.controller.base { * indexAction(){ //調用admin模塊user controller下的detail方法 let value = yield this.action("admin/user", "detail"); } } ~~~ #### cache(name, value, options) * `name`?{String} 緩存名稱 * `value`?{Mixed | Function} 緩存值 * `options`?{Object} 緩存配置,具體見緩存配置 讀取或者設置緩存,`value`為`undefined`時是讀取緩存,否則為設置緩存。默認緩存類型為`file`。 ~~~ export default class extends think.controller.base { * indexAction(){ //獲取緩存 let value = yield this.cache("name"); } } ~~~ 當參數`value`為 function 時,表示獲取緩存,如果緩存值不存在,則調用該 function,將返回值設置緩存并返回。這樣避免在項目開發時要先判斷緩存是否存在,然后再從相關地方讀取值然后設置緩存的麻煩。 ~~~ export default class extends think.controller.base { * indexAction(){ //獲取緩存,緩存不存在時自動調用 function,并設置緩存 let value = yield this.cache("name", () => { return this.model("user").select(); }); } } ~~~ 設置緩存并修改緩存類型: ~~~ export default class extends think.controller.base { * indexAction(){ //設置緩存,緩存類型使用redis yield this.cache("name", "value", { type: "redis" }); } } ~~~ #### hook(event, data) * `event`?{String} 事件名稱 * `data`?{Mixed} 參數 * `return`?{Promise} 執行對應的事件,一個事件包含若干個 middleware,會按順序執行這些 middleware。 事件可以在配置`config/hook.js`里定義,也可以通過 think.hook 來注冊。 ~~~ export default class extends think.controller.base { * indexAction(){ let result = yield this.hook("parse_data"); } } ~~~ #### model(name, options) * `name`?{String} 模型名稱 * `options`?{Object} 配置,具體見數據庫配置 * `return`?{Object} model實例 獲取模型實例,默認獲取當前模塊下對應模型的實例,也可以跨模塊獲取模型的實例。 ~~~ export default class extends think.controller.base { indexAction(){ //獲取當前模塊下的 user model 的實例 let model = this.model("user"); //獲取admin模塊下 article model 的實例 let model1 = this.model("admin/article"); //獲取當前模塊下的 test model 的實例,并且是 sqlite 的數據庫 let model2 = this.model("test", { type: "sqlite" //設置數據庫類型為sqlite,更多參數見數據庫配置 }) } } ~~~ #### controller(name) * `name`?{String} controller名稱 * `return`?{Object} controller實例 獲取 Controller 的實例,如果 Controller 找不到,則報錯。 ~~~ export default class extends think.controller.base { indexAction(){ //獲取當前模塊下 user controller 的實例 let controller = this.controller("user"); //獲取admin模塊下 user controller 的實例 let controller1 = this.controller("admin/user"); } } ~~~ #### service(name) * `name`?{String} service 名稱 * `return`?{Class} 獲取對應的 service。service 返回的可能是 class ,也可能直接是個對象,所以不會直接實例化。 ~~~ export default class extends think.controller.base { indexAction(){ //獲取對應的service let service = this.service("user"); //獲取service的實例 let instance = new service(...args); //獲取admin模塊下的user service let service1 = this.service("admin/user"); } } ~~~ 文檔地址:[https://github.com/75team/www.thinkjs.org/tree/master/view/zh-CN/doc/2.0/api_think_http_base.md](https://github.com/75team/www.thinkjs.org/tree/master/view/zh-CN/doc/2.0/api_think_http_base.md)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看