koahub.js 0.09 リリース、新しいフック機構

WBOY
リリース: 2016-10-17 09:12:03
オリジナル
817 人が閲覧しました

koahub.js 0.09 リリース、新しいフック機構
koahubjs が新しいフックメカニズムを備えた 0.09 をリリースしました

フック機構、コントローラーフック、関数フックを追加します
自動ロードのバグを修正し、エクスポートされたデフォルトを自動的にロードするだけでなく、他のメソッドも自動的にロードできることを認識します

koahubjs フックの開発プロセスを思い出してください


koahubjs を使用してプロジェクトを開発した後は、必ずプラグイン機能を追加する必要があります。この場合、プロジェクトのコードを変更するのは非常に危険であるため、フック機構は不可欠です。 koahubjs フレームワークにはデータベースが組み込まれておらず、メモリへのロードがより柔軟であるため、koahubjs はフックをメモリにロードします。

フック1

コントローラーフック
httpリクエストを実行する際に、別のコントローラーのメソッドを呼び出したい

フック2

メソッドフック
httpリクエストを実行する際にパブリック関数を呼び出したい

コードに直接移動します//hook.class.js を作成します<br> //フック定義<br> // {<br> // addOrder: [<br> // '/admin/index/index'<br> //]<br> // }<br> <br> デフォルトクラスをエクスポートする {<br> コンストラクター() {<br> This.hooks = {};<br> }<br> <br> Get() {<br> return this.hooks;<br> }<br> <br> Add(名前, アクション) {<br> let add = true;<br> for (this.hooks にキーを入れます) {<br> If (名前 == キー) {<br> This.hooks[key].push(action);<br> add = false;<br> }<br> }<br> if (追加) {<br> This.hooks[名前] = [アクション];<br> }<br> <br> return this.get();<br> }<br> <br> run(名前) {<br> for (this.hooks にキーを入れます) {<br> if(name == key){<br> for (this.hooks[key] のパスを許可) {<br> If (/w+(.*)$/.test(path)) {<br> This.runFunction(パス);<br> - This.runController(パス);<br> }<br> }<br> }<br> }<br> }<br> <br> runController(パス) {<br> let action = path.slice(path.lastIndexOf('/'));<br> path = path.slice(0, path.lastIndexOf('/'));<br> <br> = false を含めてみましょう;<br> for (let _key in koahub.controllers) {<br> If (_key == パス) {<br>                include = true;<br>                 休憩;<br>             }<br>         }<br>  <br>         if (含める) {<br>             let ctrl = koahub.controllers[パス];<br>             let pros = Object.getOwnPropertyNames(ctrl.prototype).filter(function(value) {<br>                 if (値 == 'コンストラクター') {<br>                     false を返します;<br>                 }<br>                 true を返します;<br>             });<br>  <br>             let callFlag = true;<br>             for (プロにしましょう) {<br>                 if ('/' + pros[k] == アクション) {<br>                     Object.getPrototypeOf(new ctrl())[pros[k]].call(this);<br>                     callFlag = false;<br>                 }<br>             }<br>  <br>             if (callFlag) {<br>                 console.error('フックが見つからないメソッド');<br>             }<br>         } else {<br>             console.error('フックが見つかりませんコントローラー');<br>         }<br>     }<br>  <br>     runFunction(値) {<br>         eval(`koahub.utils.${value}`);<br>     }<br> }钩子は対応する节ポイント上に先行ダウンロードする必要があります//開始挂ダウンロード<br> //コントローラー钩子<br> koahub.hook.add('hook1', '/admin/public/sendEmail');<br> //関数钩子<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> エクスポート関数 add(a, b) {<br>     console.log(a + b);<br>     return a + b;<br> }<br>  <br> エクスポート関数 dis(a, b) {<br>     console.log(a - b);<br>     return a - b;<br> }KoaHub.js – Koa.js 平台ベースの Node.js Web 高速开公開框架

インストールnpm install koahubjs --savenpm install koahubjs --saveStar Github


https://github.com/einsqing/koahubjs

公式サイト:http://js.koahub.com

wemall 开源微商城 、微信商城、商城源码、三级分销、微生鲜、微水果、微外卖、微订餐---专业的o2o系统
wemall地址:http://www.wemallshop.comkoahub.js 0.09 リリース、新しいフック機構

🎜
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート