#node.js #express #http #get #controller
Вопрос:
У меня есть контроллер, у которого есть метод, который использует GET для возврата объекта (формат json). Я хочу вызвать его с другого контроллера.
Чтобы упростить понимание, давайте назовем контроллеры controllerSrc (источник) и controllerTgt (цель).
Сначала я импортирую контроллер и создаю экземпляр переменной метода.
const controllerSrc = require('controllerSrc') const controllerSrcGET= controllerSrc.get
Теоретически, controllerSrcGET возвращает объект json, поэтому, когда я пытаюсь сделать:
console.log(controlerSrcGET._id)
Я должен иметь там идентификатор объекта и работать над ним. Однако я не определяюсь.
Дополнительная информация
Я работаю с Морганом, и я заметил, что запрос GET, который должен быть напечатан, отсутствует. Поэтому я предполагаю, что недостаточно создать экземпляр controllerSrcGET(?)
Комментарии:
1. Разве
controllerSrcGET
функция не должна вызываться такconsole.log(controlerSrcGET()._id)
?2. @Анатолий, это была одна из проблем! Однако это не решает всего 🙁 Я делаю что-то подобное в вызываемом контроллере: токен const = req.заголовки.авторизация.разделение(‘ ‘)[1]. Мне сказали, что заголовки неизвестны. Я думаю, что это что-то связанное с маршрутами, которые
3. @Анатолий Основной метод выполняется, потому что мы находимся на его маршруте. Однако, когда он вызывает другой метод, поскольку мы не находимся в его маршруте, он не выполняется. Я не знаю, как заставить это работать
4. Лучшее, что вы можете сделать, — это извлечь весь общий код, который будет использоваться обоими контроллерами, в отдельный модуль и не пытаться вызвать один контроллер в другом контроллере. Это не так, как должно работать.