Heim  >  Artikel  >  php教程  >  koahub.js 0.09 veröffentlicht, neuer Hook-Mechanismus

koahub.js 0.09 veröffentlicht, neuer Hook-Mechanismus

WBOY
WBOYOriginal
2016-10-17 09:12:03814Durchsuche

koahub.js 0.09 veröffentlicht, neuer Hook-Mechanismus
koahubjs veröffentlicht 0.09 mit neuem Hook-Mechanismus

Fügen Sie einen Hook-Mechanismus, einen Controller-Hook und einen Funktions-Hook hinzu
Beheben Sie den Fehler beim automatischen Laden und stellen Sie fest, dass zusätzlich zum automatischen Laden der exportierten Standardmethode auch andere Methoden automatisch geladen werden können

Denken Sie an den Entwicklungsprozess von koahubjs Hook


Nach der Verwendung von koahubjs zum Entwickeln eines Projekts ist es immer erforderlich, einige zusätzliche Plug-In-Funktionen hinzuzufügen. In diesem Fall ist das Ändern des Projektcodes zu riskant, daher ist der Hook-Mechanismus unverzichtbar. koahubjs lädt den Hook in den Speicher, da das koahubjs-Framework keine integrierte Datenbank hat und das Laden in den Speicher flexibler ist.

Haken 1

Controller-Hooks
Beim Ausführen einer http-Anfrage möchten Sie die Methode eines anderen Controllers aufrufen

Haken 2

Methoden-Hook
Beim Ausführen einer http-Anfrage möchten Sie eine öffentliche Funktion
aufrufen
Gehen Sie direkt zum Code//Hook.class.js erstellen<br> //Hooks-Definition<br> // {<br> // addOrder: [<br> //        '/admin/index/index'<br> // ]<br> // }<br> <br> Standardklasse exportieren {<br> ​​constructor() {<br> This.hooks = {};<br> }<br> <br> Get() {<br>           return this.hooks;<br> }<br> <br> Add(name, action) {<br> Lass add = true;<br> for (diese.hooks eingeben lassen) {<br> If (name == key) {<br> This.hooks[key].push(action);<br>                  add = false;<br>             }<br>         }<br>           if (add) {<br> This.hooks[name] = [action];<br>         }<br> <br>           return this.get();<br> }<br> <br> run(name) {<br> for (diese.hooks eingeben lassen) {<br> If (name == key) {<br> for (let path of this.hooks[key]) {<br> If (/w (.*)$/.test(path)) {<br> This.runFunction(path);<br> } Sonst {<s> This.runController(path);<br>                   }<br>                 }<br>             }<br>         }<br> }<br> <br> runController(path) {<br> ​​​​​let action = path.slice(path.lastIndexOf('/'));<br> path = path.slice(0, path.lastIndexOf('/'));<br> <br> Lassen Sie include = false;<br> for (let _key in koahub.controllers) {<br> If (_key == path) {<br>                include = true;<br>                 Pause;<br>             }<br>         }<br>  <br>         if (include) {<br>             let ctrl = koahub.controllers[path];<br>             let pros = Object.getOwnPropertyNames(ctrl.prototype).filter(function(value) {<br>                 if (value == 'constructor') {<br>                     return false;<br>                 }<br>                 return true;<br>             });<br>  <br>             let callFlag = true;<br>             für (lassen Sie k in Profis) {<br>                 if ('/'   pros[k] == action) {<br>                     Object.getPrototypeOf(new ctrl())[pros[k]].call(this);<br>                     callFlag = false;<br>                 }<br>             }<br>  <br>             if (callFlag) {<br>                 console.error('Hook Not Found Method');<br>             }<br>         } else {<br>             console.error('Hook Not Found Controller');<br>         }<br>     }<br>  <br>     runFunction(value) {<br>         eval(`koahub.utils.${value}`);<br>     }<br> }</s>钩子需要提前挂载到相应的节点上//开始挂载<code class="prettyprint linenums lang-php">//开始挂载<br> //controller钩子<br> koahub.hook.add('hook1', '/admin/public/sendEmail');<br> //function钩子<br> koahub.hook.add('hook2', 'tools.add(1,2)');<br>  <br> //调用钩子<br> koahub.hook.run('hook1');<br> koahub.hook.run('hook2'); //controller钩子//util下的*.util.js会自动挂载到koahub.utils上<br> //util/tools.util.js<br> export function add(a, b) {<br>     console.log(a   b);<br>     return a   b;<br> }<br>  <br> export function dis(a, b) {<br>     console.log(a - b);<br>     return a - b;<br> } koahub.hook.add('hook1', '/admin/public/sendEmail');
//function钩子
koahub.hook.add('hook2', 'tools.add(1,2)');npm install koahubjs --save   //调用钩子 koahub.hook.run('hook1');
koahub.hook.run('hook2');
util方法//util下的*.util.js会自动挂载到koahub.utils上<br> //util/tools.util.js<br> Exportfunktion add(a, b) {<br>     console.log(a   b);<br>     return a   b;<br> }<br>  <img src="/Uploads/editor/2016-10-15/5801ebedbbdaa.jpg" alt="koahub.js 0.09 veröffentlicht, neuer Hook-Mechanismus" > Exportfunktion dis(a, b) {<p class="da_word">     console.log(a - b);<think id="ad_196de4c105c1d8be">     return a - b;</think> }</p>KoaHub.js – 基于 Koa.js und die Node.js-Webseite

安装npm install koahubjs --saveStar Github https://github.com/einsqing/koahubjs 官网:http://js.koahub.com wemall 开源微商城,微信商城,商城源码,三级分销,微生鲜,微水果,微外卖,微订餐---专业的o2o系统 wemall地址:http://www.wemallshop.com
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn