cari
Rumahphp教程php手册koahub.js 0.09 发布,新增钩子机制

koahub.js 0.09 发布,新增钩子机制
koahubjs发布0.09 新增钩子机制

添加钩子机制,控制器钩子和函数钩子
修复自动加载bug,实现除自动加载导出的default外,还能自动加载其他的方法

记koahubjs钩子开发过程


在使用koahubjs开发项目完成之后,总是需要另外增加一些插件功能,这种情况下改动项目代码,风险太大,所以钩子机制不可缺少。koahubjs将钩子加载到了内存中,原因是因为koahubjs框架并没有内置数据库,而且加载到内存中更加灵活。

钩子1

控制器钩子
执行某个http请求的时候,想要调用另外一个控制器的方法

钩子2

方法钩子
执行某个http请求的时候,想要调用某个公共的函数

直接上代码//创建hook.class.js<br> // hooks 定义<br> // {<br> //     addOrder: [<br> //         '/admin/index/index'<br> //     ]<br> // }<br>  <br> export default class {<br>     constructor() {<br>         this.hooks = {};<br>     }<br>  <br>     get() {<br>         return this.hooks;<br>     }<br>  <br>     add(name, action) {<br>         let add = true;<br>         for (let key in this.hooks) {<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 (let key in this.hooks) {<br>             if (name == key) {<br>                 for (let path of this.hooks[key]) {<br>                     if (/\w+\(.*\)$/.test(path)) {<br>                         this.runFunction(path);<br>                     } else {<br>                         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>         let include = false;<br>         for (let _key in koahub.controllers) {<br>             if (_key == path) {<br>                 include = true;<br>                 break;<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>             for (let k in pros) {<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> }钩子需要提前挂载到相应的节点上//开始挂载<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');util方法//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.js – 基于 Koa.js 平台的 Node.js web 快速开发框架

安装npm install koahubjs --saveStar Github

https://github.com/einsqing/koahubjs

官网:http://js.koahub.com

wemall 开源微商城 ,微信商城,商城源码,三级分销,微生鲜,微水果,微外卖,微订餐---专业的o2o系统
wemall地址:http://www.wemallshop.com
koahub.js 0.09 发布,新增钩子机制

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini

MantisBT

MantisBT

Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna