У меня есть два небольших приложения 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