Koa는 비동기 미들웨어 기능을 사용할 수 있도록 Express.js 팀이 개발한 가볍고 현대적인 미들웨어 프레임워크입니다.
<code class="language-javascript">const Koa = require('koa'); const app = new Koa(); app.use(async function(ctx) { ctx.body = 'Hello'; }); app.listen(3000);</code>
여기에서는 Koa 인스턴스를 생성하고 각 요청에 "Hello"를 반환하는 미들웨어를 설정합니다.
미들웨어는 HTTP 요청을 수신하고 요청/응답 주기 동안 요청에 응답할 수 있는 기능입니다. 또한 목록의 다음 미들웨어를 호출할 수도 있습니다. 여기에 예가 있습니다.
<code class="language-javascript">async function exampleMiddleware(ctx, next) { // 从 ctx(上下文)读取请求数据 // 更多逻辑 // 设置 ctx.body 作为响应 // 调用下一个中间件 await next(); // 在调用 next 之后,由于使用了 await 语法,我们可以做更多的事情。 // 例如记录所花费的时间 } // 设置中间件 app.use(exampleMiddleware);</code>
미들웨어 프레임워크를 사용하면 여러 미들웨어 기능을 정의하고 정의된 순서대로 실행할 수 있습니다. 위의 예에서 다음 매개변수를 발견했을 것입니다. 호출되면 다음 미들웨어로 제어권을 넘기는 함수입니다.
비동기 함수를 사용하면 미들웨어가 실행된 후 대기를 사용하여 스택 방식으로 특정 작업을 수행할 수 있습니다.
추가 실행이 필요하지 않으면 next를 호출할 필요가 없습니다. 예를 들어 인증 미들웨어를 생각해 보세요. 사용자가 로그인되어 있으면 next가 호출되고, 그렇지 않으면 로그인 페이지가 표시됩니다.
<code class="language-javascript">// 身份验证中间件 app.use(async (ctx, next) => { if(user){ // 调用列表中的下一个中间件 await next(); } else { // 显示登录页面 } }); // Hello 中间件 app.use(async (ctx) => { ctx.body = 'Hello'; });</code>
보시다시피 미들웨어의 순서도 중요합니다.
각 미들웨어는 두 개의 매개변수를 받습니다. 첫 번째는 컨텍스트(ctx로 축약됨)이고 다음입니다.
ctx에는 요청의 속성이 포함되어 있습니다. 또한 요청에 응답할 수 있는 setter도 포함되어 있습니다.
다음은 공통 속성 목록입니다. 여기에서 전체 목록을 확인할 수 있습니다.
名称 | 描述 |
---|---|
ctx.method | 当前请求方法 |
ctx.path | 当前请求路径 |
ctx.query | 查询字符串 |
ctx.body | 设置响应正文的设置器 |
app.use 사용 - 문서. 미들웨어의 순서가 중요하다는 점에 유의하세요.
<code class="language-javascript">const Koa = require('koa'); const app = new Koa(); app.use(async function(ctx) { ctx.body = 'Hello'; }); app.listen(3000);</code>
app.listen 사용 - 문서.
<code class="language-javascript">async function exampleMiddleware(ctx, next) { // 从 ctx(上下文)读取请求数据 // 更多逻辑 // 设置 ctx.body 作为响应 // 调用下一个中间件 await next(); // 在调用 next 之后,由于使用了 await 语法,我们可以做更多的事情。 // 例如记录所花费的时间 } // 设置中间件 app.use(exampleMiddleware);</code>
ctx.body setter 사용 - 문서.
<code class="language-javascript">// 身份验证中间件 app.use(async (ctx, next) => { if(user){ // 调用列表中的下一个中间件 await next(); } else { // 显示登录页面 } }); // Hello 中间件 app.use(async (ctx) => { ctx.body = 'Hello'; });</code>
ctx.redirect 사용 - 문서.
<code class="language-javascript">app.use(middlewareFunction1); app.use(middlewareFunction2); app.use(middlewareFunction3);</code>
ctx.throw 사용 - 문서.
<code class="language-javascript">app.listen(3000);</code>
Koa에서는 미들웨어에서 사용할 수 있는 미들웨어 프레임워크와 ctx를 제공합니다. 번들로 제공되는 미들웨어는 포함되어 있지 않습니다.
완전한 애플리케이션을 구축하려면 Koa 커뮤니티에서 제공하는 미들웨어를 사용해야 합니다. 다음은 일반적인 미들웨어 목록입니다.
Koa GitHub에서 더 많은 미들웨어를 찾아볼 수 있습니다.
Koa는 API 및 웹 애플리케이션 구축을 위한 훌륭하고 가볍고 현대적인 웹 프레임워크입니다. Koa 웹사이트에서 더 많은 문서를 읽을 수 있습니다.
위 내용은 KOA.JS에 대한 소개 : API 및 웹 앱을위한 경량 프레임 워크의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!