> 웹 프론트엔드 > JS 튜토리얼 > KOA.JS에 대한 소개 : API 및 웹 앱을위한 경량 프레임 워크

KOA.JS에 대한 소개 : API 및 웹 앱을위한 경량 프레임 워크

Mary-Kate Olsen
풀어 주다: 2025-01-25 18:31:10
원래의
699명이 탐색했습니다.

Intro to Koa.js: A Lightweight Framework for APIs & Web Apps

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"를 반환하는 미들웨어를 설정합니다.

특징

  • 현대문법
  • async/await 미들웨어를 지원합니다.
  • 약 570줄의 코드로 가볍습니다.
    • 번들 미들웨어가 없습니다.
  • (req, res) 대신 컨텍스트(ctx) 개체
    • 미들웨어 시그니처는 middleware(ctx, next)
  • 더 나은 오류 처리

미들웨어란?

미들웨어는 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로 축약됨)이고 다음입니다.

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 커뮤니티에서 제공하는 미들웨어를 사용해야 합니다. 다음은 일반적인 미들웨어 목록입니다.

  • 라우터
  • 바디 파서
  • 로거
  • ejs 렌더러

Koa GitHub에서 더 많은 미들웨어를 찾아볼 수 있습니다.

결론

Koa는 API 및 웹 애플리케이션 구축을 위한 훌륭하고 가볍고 현대적인 웹 프레임워크입니다. Koa 웹사이트에서 더 많은 문서를 읽을 수 있습니다.

위 내용은 KOA.JS에 대한 소개 : API 및 웹 앱을위한 경량 프레임 워크의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿