Не удается прочитать свойства неопределенного 'res.status()', та же неопределенная ошибка для 'res.send()' и 'res.json()'. Пожалуйста, кто-нибудь

В приведенном ниже коде, как показано на изображении, я получаю сообщение об ошибке res.

Функция Every, которую я связываю с res (например, res.status().send(), res.json(), res.console.info() и другими), выдает ошибку Cannot read property of undefined "chainedFunction".

И это происходит только с этим launches.controller.js файлом,

У меня есть другой файл с именем planets.controller.js, и он отлично работает с тем же шаблоном кода, а res.status() или любая другая связанная функция с res не выдает никаких ошибок. Я также проанализировал запрос с помощью express.json(), так что проблема не в том, что запрос тоже не проанализирован.

С данными проблем нет, как видите, данные записываются в консоль (выделено зеленым цветом). Тогда почему он выдает эту ошибку?

Пожалуйста, помогите, это очень важно для меня. Я не смогу двигаться дальше в проекте, не решив этот вопрос.

Благодарю вас.

Это изображение показывает Launches.controller.js. Не удается прочитать свойства неопределенного 'res.status()', та же неопределенная ошибка для 'res.send()' и 'res.json()'. Пожалуйста, кто-нибудь

На этом изображении показано Launches.router.jsНе удается прочитать свойства неопределенного 'res.status()', та же неопределенная ошибка для 'res.send()' и 'res.json()'. Пожалуйста, кто-нибудь

На этом изображении показан код для app.jsНе удается прочитать свойства неопределенного 'res.status()', та же неопределенная ошибка для 'res.send()' и 'res.json()'. Пожалуйста, кто-нибудь

🤔 А знаете ли вы, что...
Node.js позволяет создавать масштабируемые приложения с использованием механизмов кластеризации.


22
1

Ответ:

Решено

Проблема в том, что вам нужно передать ссылку на функцию на маршрут, а не на результат функции.

Итак, вместо того, чтобы вызывать функцию getAllLaunches, как вы это делали:

launchesRouter.get('/launches', getAllLaunches())

Измените его на следующий код:

//pass the function reference; do not execute the function.
//express will execute it when necessary.
launchesRouter.get('/launches', getAllLaunches)