Изучаю nodejs, сейчас пытаюсь организовать роуты на express похожим с laravel образом. Пример кода:
// Router
const controller = require('../controllers/index')
module.exports = (app) => {
app.get('/users', controller('UserController@index'))
}
// Controller index aka controller()
const fs = require('mz/fs')
module.exports = (handler) => {
const [controller, method] = handler.split('@')
const controllers = fs
.readdirSync(__dirname)
.filter((v) => v !== __filename.slice(__dirname.length + 1))
.map(v=> v.slice(0,-3))
if (controllers.includes(controller)) {
return require(`./${controller}`)[method]
} else {
console.error(`Controller with name ${controller} doesnt exist!`)
}
}
Вопрос, как правильно это переписать, что обработчик корректно передавался в роут?
upd: Идея в том, чтобы заставить метод get() передавить аргументы той функции, которую вернет controller()