찾다
php教程php手册koahub.js 0.09 출시, 새로운 후크 메커니즘

koahub.js 0.09 출시, 새로운 후크 메커니즘
koahubjs, 새로운 후크 메커니즘을 갖춘 0.09 출시

후크 메커니즘, 컨트롤러 후크 및 기능 후크 추가
자동 로딩 버그를 수정하고 내보낸 기본값을 자동으로 로드하는 것 외에도 다른 메소드도 자동으로 로드할 수 있음을 인식하세요

koahubjs Hook의 개발 과정을 기억하세요


koahubjs를 사용하여 프로젝트를 개발한 후에는 항상 추가 플러그인 기능을 추가해야 합니다. 이 경우 프로젝트 코드를 변경하는 것은 너무 위험하므로 후크 메커니즘이 필수적입니다. koahubjs 프레임워크에는 내장 데이터베이스가 없기 때문에 koahubjs는 후크를 메모리에 로드하고 메모리에 로드하는 것이 더 유연합니다.

훅 1

컨트롤러 후크
http 요청을 실행할 때 다른 컨트롤러의 메소드를 호출하고 싶습니다

훅 2

메소드 후크
http 요청을 실행할 때 공개 함수를 호출하고 싶습니다

코드로 바로 이동//hook.class.js 생성<br> //후크 정의<br> // {<br> // 주문 추가: [<br> //        '/admin/index/index'<br> // ]<br> // }<br> <br> 기본 클래스 내보내기 {<br> ​​생성자() {<br> This.hooks = {};<br> }<br> <br> Get() {<br>           return this.hooks;<br> }<br> <br> 추가(이름, 동작) {<br> 추가 = true; <br> for (this.hooks에 키를 넣습니다) {<br> If (이름 == 키) {<br> This.hooks[키].push(action);<br>                  추가 = false;<br>             }<br>         }<br>           if (추가) {<br> This.hooks[이름] = [작업];<br>         }<br> <br>           return this.get();<br> }<br> <br> 실행(이름) {<br> for (this.hooks에 키를 넣습니다) {<br> If (이름 == 키) {<br> for (let path of this.hooks[key]) {<br> If (/w+(.*)$/.test(path)) {<br> This.runFunction(경로);<br> } 그렇지 않으면 {<s> This.runController(경로);<br>                   }<br>                 }<br>             }<br>        }<br> }<br> <br> runController(경로) {<br> ​​​​​let action = path.slice(path.lastIndexOf('/'));<br> 경로 = path.slice(0, path.lastIndexOf('/'));<br> <br> 포함 = false;<br> for (koahub.controllers에서 _key를 입력하세요) {<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>             (전문가를 받아들이세요) {<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('후크를 찾을 수 없음');<br>             }<br>         } 그밖에 {<br>             console.error('훅 컨트롤러를 찾을 수 없음');<br>         }<br>     }<br>  <br>     runFunction(값) {<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'); //컨트롤러钩子//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');
//함수钩子
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> 내보내기 기능 add(a, b) {<br>     console.log(a + b);<br>     a + b를 반환합니다.<br> }<br>  <img src="/static/imghwm/default1.png" data-src="/Uploads/editor/2016-10-15/5801ebedbbdaa.jpg" class="lazy" alt="koahub.js 0.09 출시, 새로운 후크 메커니즘" > 내보내기 함수 dis(a, b) {<p class="da_word">     console.log(a - b);<think id="ad_196de4c105c1d8be">     a - b를 반환합니다.</think> }</p>KoaHub.js – 基于 Koa.js 平台的 Node.js 웹 快速开发框架

安装npm install koahubjs --saveStar Github https://github.com/einsqing/koahubjs 官网:http://js.koahub.com wemall 开源微商城 ,微信商city,商city源码,三级分销,微生鲜,微水果,微外卖,微订餐---专业的o2o系统 wemall地址:http://www.wemallshop.com
성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기