Друзья, подскажите пожалуйста по следующему вопросу.
Есть VPS сервер. Установил туда Node.js и свой проект. Я могу обращаться к модулям по IP и порту. При внешнем XMLHTTPRequest запросе к модулю появляется ошибка:
_http_outgoing.js:489 throw new Error('Can\'t set headers after they are sent.'); ^
Error: Can't set headers after they are sent. at validateHeader (_http_outgoing.js:489:11) at ServerResponse.setHeader (_http_outgoing.js:496:3) at Server. (/root/node_modules/iSiN/iSiN.js:23:18) at emitTwo (events.js:125:13) at Server.emit (events.js:213:7) at parserOnIncoming (_http_server.js:602:12) at HTTPParser.parserOnHeadersComplete (_http_common.js:116:23)
Как это исправить?
Код сервера модуля:
var architect = require('neataptic').architect;
var http = require('http');
var url = require('url');
var Response = require('http-outgoing').OutgoingMessage;
console.log("...");
console.log("Модули подключены");
console.log("...");
var answer;
var trainingData = new Array();
var roll_prophecy, roll_realy = 0;
var input_prophecy, output_prophecy;
//Сервер
const server = http.createServer(function (request, response) {
console.log("Обнаруженно соединение...");
const queryData = url.parse(request.url, true).query;
response.writeHead(200, {"Content-Type": "text/plain"});
if (queryData.param) {
// клиент прислал параметр
const land = neuralnetwork(queryData.param);
response.setHeader('Access-Control-Allow-Origin', '*');
console.log("2");
response.setHeader('Access-Control-Allow-Methods', 'GET, OPTIONS');
console.log("3");
response.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type');
console.log("4");
response.setHeader('Access-Control-Allow-Credentials', true);
console.log("5");
response.end(answer);
console.log("Отправили: " + roll_prophecy );
} else {
// Клиент сделал запрос но не прислал данные
response.end('Ошибка - пустой запрос.');
console.log("Ой! Что-то cломалось!");
}
});
//Слушаем порт
server.listen(8001); // слушаем на 8001 порту
//Создаем нейросеть
var narx = new architect.NARX(1, [5, 5, 5], 1, 20, 20);
function neuralnetwork (iSin) {
console.log("Получили: " + iSin);
answer = prediction(iSin).toString();
return answer;
}
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники