У меня есть куча функций контроллера, которые делают одно и то же: вызывают сервисную функцию в другом файле с тем же именем.Для примера я приведу только две функции, но представьте, что их несколько.
const express = require('express');
const router = express.Router();
const userService = require('./user.service');
const authorize = require('_helpers/authorize');
// routes
router.post('/authenticate', authenticate);
router.post('/create', create);
// ...
// ( it goes on like this )
// ...
module.exports = router;
function authenticate(req, res, next) {
userService.authenticate(req.body)
.then(user => user ? res.json(user) : res.status(400).json({ message: 'Error.' }))
.catch(err => next(err));
}
function create(req, res, next) {
userService.create(req.body)
.then(user => user ? res.json(user) : res.status(400).json({ message: 'Error.' }))
.catch(err => next(err));
}
// ...
// ( it goes on like this )
Есть ли способ в Javascript, чтобы избежать такого повторяющегося кода?(Я не новичок в программировании, но я новичок в Javascript).Я думал об автоматизации этой генерации кода с помощью макросов vim, но, возможно, в языке есть какой-то пакет или функция, которая может сделать этот код менее детальным, возможно, какое-то метапрограммирование.