@Sashqa

Как прокинуть данные наверх в node js?

// server.js

import { sendHttpRequest } from "../../../api";
import { checkFiles } from "../../../api";

app.get('/', ((req: any, res: any) => {
    // тут я вызываю какой-то метод
    sendHttpRequest(num1, num2)
}))

// В файле sendHttpRequest.js я отправляю запрос и  вызываю еще один метод

export sendHttpRequest = async (num1, num2) => {
    try {
        await fetch(id, param)
            .then((response: any) => response.json())
            .then(data => {
                checkFiles(id, data);
            })
    }
    catch (e) {
        console.error(e)
    }
}

в checkFiles.js я делаю еще несколько других запросов и на выходе получаю как-то результат, который мне надо прокинуть на самый верх - в server.js, чтобы получить в reponse? то есть app.get('/', ((req: any, res: any) в res долен быть мой результат.
Как можно этого добиться?
  • Вопрос задан
  • 91 просмотр
Решения вопроса 1
@Che603000
c 2011 javascript
Общий подход
app.get('/', (req, res, next) => {
  sendHttpRequest(num1, num2)
    .then(data => anyFetch1(url))
    .then(data => anyFetch2(url))
      ....
    .then(data => res.json(data))  // ответ клиенту
    .catch(err => next(err)) // ошибка 
.then
}))


sendHttpRequest и каждый anyFetch- должен возвращать промис.

P.S.
У вас возврата нет в коде
return await fetch(id, param) // return !!!
         .then((response: any) => response.json())
            .then(data => {
              return  checkFiles(id, data); // return надо ставить 
            })
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы