Koa.js-오류 처리

오류 처리는 웹 애플리케이션을 구축하는 데 중요한 역할을합니다. Koa는 이러한 목적으로도 미들웨어를 사용합니다.

Koa에서 다음을 수행하는 미들웨어를 추가합니다. try { yield next }최초의 미들웨어 중 하나로. 다운 스트림에서 오류가 발생하면 관련된 catch 절로 돌아가 여기에서 오류를 처리합니다. 예를 들면-

var koa = require('koa');
var app = koa();

//Error handling middleware
app.use(function *(next) {
   try {
      yield next;
   } catch (err) {
      this.status = err.status || 500;
      this.body = err.message;
      this.app.emit('error', err, this);
   }
});

//Create an error in the next middleware
//Set the error message and status code and throw it using context object

app.use(function *(next) {
   //This will set status and message
   this.throw('Error Message', 500);
});

app.listen(3000);

위 코드에서 의도적으로 오류를 생성했으며 첫 번째 미들웨어의 catch 블록에서 오류를 처리하고 있습니다. 그런 다음 콘솔로 내보내고 클라이언트에 대한 응답으로 보냅니다. 다음은이 오류를 트리거 할 때 표시되는 오류 메시지입니다.

InternalServerError: Error Message
   at Object.module.exports.throw 
      (/home/ayushgp/learning/koa.js/node_modules/koa/lib/context.js:91:23)
   at Object.<anonymous> (/home/ayushgp/learning/koa.js/error.js:18:13)
   at next (native)
   at onFulfilled (/home/ayushgp/learning/koa.js/node_modules/co/index.js:65:19)
   at /home/ayushgp/learning/koa.js/node_modules/co/index.js:54:5
   at Object.co (/home/ayushgp/learning/koa.js/node_modules/co/index.js:50:10)
   at Object.toPromise (/home/ayushgp/learning/koa.js/node_modules/co/index.js:118:63)
   at next (/home/ayushgp/learning/koa.js/node_modules/co/index.js:99:29)
   at onFulfilled (/home/ayushgp/learning/koa.js/node_modules/co/index.js:69:7)
   at /home/ayushgp/learning/koa.js/node_modules/co/index.js:54:5

현재 서버에 요청을 보내면이 오류가 발생합니다.