У меня в основном есть файл для каждого имени маршрута (то есть: things.js
) То же самое в каждом файле.Как включить этот файл маршрутов (koa @ next-v2) в класс с наследованием с использованием ES6?
Я хочу использовать классы ES6 для создания базового класса Route
в base.js
, что делает по умолчанию с возможностью переопределения каждого типа метода запроса в конкретном маршруте файл things.js
Вот файл 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 {}
, если я хочу что-то изменить для этого конкретного маршрута.
Я могу наследовать, когда дело доходит до методов, но не уверен, как я буду обращаться с этими определениями маршрутизаторов в модели наследования.
Это не очень хорошая практика для меня, поскольку вы не наследуете ничего действительно от базового класса. Также как вы могли бы сделать это с помощью функции? Я не женат на использовании класса ES6, просто подумал, что это самый простой способ переопределить набор значений по умолчанию. – chovy
Я не уверен, что вы подразумеваете под «не наследуя ничего действительно». Возможно, если вы более конкретно объясните, чего вы пытаетесь достичь, я мог бы помочь. Вы спросили, как вы можете установить разные типы поведения для определенного маршрута, расширив базовый класс, который показывает мой ответ. Что касается комментария функции, я должен был бы сказать «функционально» вместо «функции». Я упомянул об этом, потому что согласен с тем, что решение на основе класса перегружено, но это то, о чем вы специально попросили. –