Разделить контроллер express на несколько файлов - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть express js файл контроллера, созданный следующим образом

Путь: /controllers/usersController.js

// Register User
module.exports.register = function(req, res) {
...
}

// Login User
module.exports.login = function(req, res) {
...
}

// Forgot Password
module.exports.forgot_password = function(req, res) {
...
}

И я использую require () внутри файла маршрута, подобного этому

Путь: / route / users. js

const usersController = require('../controllers/usersController')
router.post('/users/register', usersController.register)
router.post('/users/login', usersController.login)
router.post('/users/forgot_password', usersController.forgot_password)

Это все работает нормально. Но код моего контроллера становится больше, и я хочу разделить userController. js на отдельные файлы, чтобы у меня было что-то вроде этого

/controllers/users/index.js
/controllers/users/register.js
/controllers/users/login.js
/controllers/users/forgot_password.js

И /controllers/users/index.js должен быть базовым контроллером, который включает в себя все эти отдельные файлы. И я могу просто использовать этот index.js файл в маршрутизаторе.

Я не уверен, как это сделать. Я попытался сделать метод module.export () внутри каждого отдельного js файла и импортировал их в файл /users/index.js, но я получаю эту ошибку от маршрутизатора.

.post() requires callback functions but got a [object Undefined] not working

Примечание: Я не могу использовать оператор импорта es6: (

1 Ответ

0 голосов
/ 21 апреля 2020

Из любой информации, которую я собрал из вопроса, вы можете разделить файл контроллера, установив module.exports для требуемой функции в каждом отдельном файле.

Например, для / controllers / users / зарегистрируйтесь. js

module.exports = function(req,res){...}

А затем внутри /controllers/users/index.js

let register = require('./register.js');
router.post('/users/register', register);

и продолжайте аналогично для каждой функции контроллера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...