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