백엔드 다루기 Koa 프레임워크 (간단정리)
Node.js의 Koa 웹프레임워크
Express의 기존 개발팀이 개발한 프레임워크로 기존의 개선점들을 추가하며 새로운 프레임워크를 개발
- Express는 다양한 기능이 자체적으로 내장되어 있는 것에 비해
Koa는 미들웨어 기능만 갖추고 필요 라이브러리들은 따로 다운받는다 -> express보다 가볍다. + async/await 같은 ES6 문법 제공
- 우리는 서버를 만들고 해당 서버의 body에 원하는 내용을 처리하면 이를 이를 API로 처리한다면 해당 body를 받아 처리하겠지 (GET 메소드 같은 경우는 웹 브라우저에서 주소를 입력해서 테스팅하는 것이 이에 해당)
Koa로 서버 띄우기
const Koa = require('koa');
const app = new Koa();
app.use(ctx=>{
ctx.body = 'hello';
})
app.listen(4000, ()=>{
console.log('open 4000 port');
})
node src/index.js
명령어 실행하면 정상적으로 동작
미들웨어
app.use
함수를 통해 미들웨어 함수를 등록
미들웨어 파라미터
- ctx : 웹 요청과 응답에 관한 정보
- next : 현재 처리중인 미들웨어의 다음 미들웨어를 호출하는 함수
(다음 app.use 실행역할)
nodemon
서버 코드를 변경할때마다 서버를 재시작하는 번거로움을 해결하기 위한 라이브러리 (서버 코드의 변경을 감지해서 restart 하는듯)
koa-router
다른 주소로 요청이 들어올 경우 다른 작업을 처리할 수 있도록 라우터를 사용
- 라우터간의 계속된 연결을 처리한다.
파일들
- src/index.js
- src/api/index.js
- src/api/posts/index.js
- src/api/posts/posts.ctrl.js
src/index.js
const Router = require('koa-router');
const api = require('./api');
const router = new Router();
...
router.use('/api',api.routes());
src/api/index.js
const Router = require('koa-router');
const posts = require('./posts');
const api = new Router();
...
api.use('/api',posts.routes());
src/api/posts/index.js
const Router = require('koa-router');
const postsCtrl = require('./posts.ctrl');
const posts = new Router();
...
posts.get('/',postsCtrl.list);
posts.post('/',postsCtrl.write);
posts.get('/:api',postsCtrl.read);
src/api/posts/posts.ctrl.js
exports.write = ctx=>{
...
}
exports.list = ctx=>{
ctx.body = posts;
};
exports.read = ctx=>{
....
}
Author And Source
이 문제에 관하여(백엔드 다루기 Koa 프레임워크 (간단정리)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@khw970421/백엔드-다루기-간단정리
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Express의 기존 개발팀이 개발한 프레임워크로 기존의 개선점들을 추가하며 새로운 프레임워크를 개발
Koa는 미들웨어 기능만 갖추고 필요 라이브러리들은 따로 다운받는다 -> express보다 가볍다. + async/await 같은 ES6 문법 제공
const Koa = require('koa');
const app = new Koa();
app.use(ctx=>{
ctx.body = 'hello';
})
app.listen(4000, ()=>{
console.log('open 4000 port');
})
node src/index.js
명령어 실행하면 정상적으로 동작
app.use
함수를 통해 미들웨어 함수를 등록
(다음 app.use 실행역할)
서버 코드를 변경할때마다 서버를 재시작하는 번거로움을 해결하기 위한 라이브러리 (서버 코드의 변경을 감지해서 restart 하는듯)
koa-router
다른 주소로 요청이 들어올 경우 다른 작업을 처리할 수 있도록 라우터를 사용
- 라우터간의 계속된 연결을 처리한다.
파일들
- src/index.js
- src/api/index.js
- src/api/posts/index.js
- src/api/posts/posts.ctrl.js
src/index.js
const Router = require('koa-router');
const api = require('./api');
const router = new Router();
...
router.use('/api',api.routes());
src/api/index.js
const Router = require('koa-router');
const posts = require('./posts');
const api = new Router();
...
api.use('/api',posts.routes());
src/api/posts/index.js
const Router = require('koa-router');
const postsCtrl = require('./posts.ctrl');
const posts = new Router();
...
posts.get('/',postsCtrl.list);
posts.post('/',postsCtrl.write);
posts.get('/:api',postsCtrl.read);
src/api/posts/posts.ctrl.js
exports.write = ctx=>{
...
}
exports.list = ctx=>{
ctx.body = posts;
};
exports.read = ctx=>{
....
}
Author And Source
이 문제에 관하여(백엔드 다루기 Koa 프레임워크 (간단정리)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@khw970421/백엔드-다루기-간단정리
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
다른 주소로 요청이 들어올 경우 다른 작업을 처리할 수 있도록 라우터를 사용
const Router = require('koa-router');
const api = require('./api');
const router = new Router();
...
router.use('/api',api.routes());
const Router = require('koa-router');
const posts = require('./posts');
const api = new Router();
...
api.use('/api',posts.routes());
const Router = require('koa-router');
const postsCtrl = require('./posts.ctrl');
const posts = new Router();
...
posts.get('/',postsCtrl.list);
posts.post('/',postsCtrl.write);
posts.get('/:api',postsCtrl.read);
exports.write = ctx=>{
...
}
exports.list = ctx=>{
ctx.body = posts;
};
exports.read = ctx=>{
....
}
Author And Source
이 문제에 관하여(백엔드 다루기 Koa 프레임워크 (간단정리)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@khw970421/백엔드-다루기-간단정리저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)