отправка запроса с выраженной ошибкой не может установить заголовки после отправки клиентам, возможно ли использовать выборку внутри post req - PullRequest
0 голосов
/ 15 октября 2018

Я столкнулся с проблемой при загрузке http://xx.xx.xx.xx:8080 на другой сервер с моего внутреннего сервера localhost и получаю эту ошибку, но когда я отключаю брандмауэр на другом сервере, сообщениезапрос работает в течение определенного периода времени, затем эта ошибка повторяется, может кто-нибудь помочь мне с этим, я не написал запрос на публикацию, я просто хочу знать, почему эта ошибка возникает иногда, затем она работает в другой раз, ия не понимаю, проблема ли это в брандмауэре или в tls, ssl-сертификатах или проблема на моем локальном хосте в коде, который создал сервер?

{ FetchError: request to http://xx.xx.xx.xx:8080/users failed, reason: connect ETIMEDOUT xx.xx.xx.xx:8080
    at ClientRequest.<anonymous> (C:\Users\deadpool\Desktop\server\node_modules\node-fetch\index.js:133:11)
    at ClientRequest.emit (events.js:182:13)
    at Socket.socketErrorListener (_http_client.js:391:9)
    at Socket.emit (events.js:182:13)
    at emitErrorNT (internal/streams/destroy.js:82:8)
    at emitErrorAndCloseNT (internal/streams/destroy.js:50:3)
    at process._tickCallback (internal/process/next_tick.js:63:19)
  name: 'FetchError',
  message:
   'request to http://xx.xx.xx.xx:8080/users failed, reason: connect ETIMEDOUT xx.xx.xx.xx:8080',
  type: 'system',
  errno: 'ETIMEDOUT',
  code: 'ETIMEDOUT' }

1 Ответ

0 голосов
/ 20 октября 2018

Я получаю сообщение об ошибке: не могу установить заголовки после отправки клиентам, код работает, но почему эта ошибка возникает

Вы используете res.json в цикле.Вы можете вызвать res.json только один раз в маршруте.

Когда вы вызываете res.json, он отправляет все ответы и заголовки и отключает http-соединение.

Вы должны отредактировать свой код так, чтобы res.json вызывался, когда вся ваша бизнес-логиказавершено.

и есть лучший способ написать этот код

Да, ваш код стал очень жалким для чтения.Почему бы вам не сделать несколько функций для мелких деталей?Тем самым вы можете уменьшить количество вложенных обещаний и сделать все читабельным.

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