Ошибка: зависание сокета происходит при использовании запроса к процессу локального узла на другом порту - PullRequest
0 голосов
/ 21 декабря 2018

У меня есть два небольших приложения Node.js, которые я использую для воссоздания этой проблемы.ServiceA и ServiceB, оба используют express.js.

Я получаю это сообщение об ошибке при переходе на localhost: 8080

{ Error: socket hang up
  at createHangUpError (_http_client.js:258:15)
  at Socket.socketOnEnd (_http_client.js:350:23)
  at emitNone (events.js:91:20)
  at Socket.emit (events.js:185:7)
  at endReadableNT (_stream_readable.js:978:12)
  at _combinedTickCallback (internal/process/next_tick.js:80:11)
  at process._tickCallback (internal/process/next_tick.js:104:9) code: 
'ECONNRESET' }

Это на экземпляре AWS cloud9 только с узлом, mongodb иRedis установлен, хотя Монго и Redis не являются частью примера.Я осмотрелся и кажется, что люди говорят, что отчасти проблема в том, что я использую два узла, обрабатываемые на одном сервере, но это не имеет особого смысла.

Служба A:

const express = require("express");
const app = express();
const request = require('request');

app.get('/', (req, res) => {
 console.log('Index Service A');

  var options = {
   uri: 'http://localhost:8081/test',
   method: 'POST',
   json: {
     "message": "Hello From Service A"
   }
 };

request(options,  (error, response, body) => {
 if (!error && response.statusCode == 200) {
  console.log(body.id); // Print the shortened url.
 }
 if(error) console.log(error);
});

 res.send('Index Service A');
});

app.listen(8080, () => {
  console.log('Express server running service A has started');
});

Служба B:

const express = require("express");
const app = express();

app.get('/', (req, res) => {
 console.log('Index Service B');
 res.send('Index Service B');
});

app.post('/test', (req, res) => {
 console.log(req.body);
});

app.listen(8081, () => {
  console.log('Express server running service B has started');
});

Я ожидал, что он распечатает объект JSON из службы A

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