Ошибка с Axios в промежуточном программном обеспечении Express - невозможно отправить заголовки после их отправки - PullRequest
0 голосов
/ 12 декабря 2018

У меня возникли проблемы с пониманием, почему мой код не выполняется должным образом.При использовании Axios в моем промежуточном программном обеспечении я получаю:

Error: Can't set headers after they are sent.

Вот мой код (я использую Lodash forEach):

app.post('/myApi', function (req, res, next) {
  _.forEach(things, (thing) => {
    axios.post(url, { data: thing })
    .then(()=>{
      // writing data to an excel file
    })
    .then(()=>{
      // need this next to go to next middleware, but it causes the error mentioned above
      next()
    })
  })
})

Как видите, я упоминаю, что мне нужно вызвать next(), но я получаю вышеупомянутую ошибку.

Я попытался создать анонимную функцию Lodash forEach async и применить awaitна axiox.post, но это не сработало.Я не уверен , куда отправляются именно заголовки. Что я делаю не так?

1 Ответ

0 голосов
/ 12 декабря 2018

Поскольку у вас есть вызов next () внутри функции _forEach (), это означает, что вы вызываете next () в каждом цикле, и, следовательно, причина указанной вами ошибки.

...