기본적으로 각 경로 이름 (즉, things.js
)에 대한 파일이 있습니다. 각 파일에 똑같은 내용이 있습니다.이 루트 파일 (koa @ next-v2)을 ES6을 사용하여 상속 된 클래스로 변환하려면 어떻게해야합니까?
things.js
각 요청 메소드 타입을 오버라이드 (override) 할 수있는 능력의 기본을 수행 base.js
에 기본 Route
클래스를 만들 ES6 클래스를 사용하려면
는 things.js
경로 파일은 다음과 같습니다
'use strict';
const path = require('path');
const fs = require('fs');
const name = path.basename(__filename, '.js');
const Router = require('koa-router');
const Controller = require(`../controllers/${name}`);
const controller = new Controller();
const router = new Router({ prefix: `/${name}` });
router.get('/', controller.getAll.bind(controller));
router.post('/', controller.post.bind(controller));
router.get('/:id', controller.get.bind(controller));
router.put('/:id', controller.put.bind(controller));
router.patch('/:id', controller.patch.bind(controller));
router.delete('/:id', controller.delete.bind(controller));
module.exports = router;
어쨌든 위의 코드를 Route.js
에 입력하고 그 특정 경로에 대해 뭔가를 변경하려는 경우 class Things extends Route {}
을 입력하고 싶습니다.
메서드에 대해서는 상속을 할 수 있지만 상속 모델에서이 라우터 정의를 처리하는 방법을 잘 모르겠습니다.
당신이 단지 기능을 usig,하지만 당신은 클래스를 요구하기 때문에 달성 할 수
기본 클래스에서 아무 것도 상속받지 못하기 때문에 이것은별로 좋지 않습니다. 또한 어떻게 함수로 이것을 할 수 있습니까? 나는 ES6 클래스를 사용하는 것과 결혼하지 않았습니다. 단지 기본값을 재정의하는 가장 쉬운 방법이라고 생각했습니다. – chovy
"정말 아무것도 상속하지 않는다"는 것이 무슨 뜻인지 잘 모르겠습니다. 아마도 당신이 성취하고자하는 것을 구체적으로 설명한다면 나는 더 많은 도움이 될 수 있습니다. 내 대답에 표시된 기본 클래스를 확장하여 특정 경로에 대해 다른 동작을 설정하는 방법을 질문했습니다. 함수 주석에 대해서는 "함수"대신 "기능적으로"말 했어야합니다. 클래스 기반 솔루션이 과도하게 사용된다는 데 동의하기 때문에 언급했지만, 특별히 요구 한 것입니다. –