Хорошо, этот вопрос должен быть очень простым, но я только начал изучать узел. Я также новичок в javascript, поэтому, пожалуйста, не проявляйте милосердия, указав неправильные направления ниже.JSON.stringify не удается создать новый объект (узел, javascript)
В частности, у меня есть два файла:
- один имеет класс, который создает несколько подчиненных серверов в разных портах
- другой является «основной» файл, который создает рабов
Когда я пытаюсь распечатать то, что я только что инициализировал, я получаю две странные ошибки:
- connect иона является устаревшей. Используйте метод getConnections(), а затем
- он выходит из строя при попытке применить JSON.stringify в новом объекте (Преобразование круговой структуры JSON)
Код для рабов в файл «slave.js»:
var http = require ("http");
function Slave() {
}
Slave.prototype.ID = undefined;
Slave.prototype.coordinator = false;
Slave.prototype.httpServer = undefined;
Slave.prototype.thePort = undefined;
Slave.prototype.isCoordinator = function() { return this.coordinator; }
/*****************************************************************/
function handle_incoming_request (req, res) {
console.log("INCOMING REQUEST: " + req.method + " " + req.url);
res.writeHead (200, { "Content-Type" : "application/json" });
res.end(JSON.stringify({ "error" : null }) + "\n");
}
exports.createSlave = function (id, coordinatorK, port) {
var temp = new Slave();
temp.ID = id;
temp.coordinator = coordinatorK;
temp.thePort = port;
temp.httpServer = http.createServer(handle_incoming_request);
temp.httpServer.listen (temp.thePort);
console.log ("Slave (" + (temp.isCoordinator() ? "coordinator" : "regular") + ") with ID " + temp.ID + " is listening to port " + temp.thePort);
console.log ("--------------------------------------------");
return temp;
}
Теперь, основной файл.
var http = require ("http");
var url = require ("url");
var a = require ("./slave.js");
var i, temp;
var myArray = new Array();
for (i = 0; i < 4; i++) {
var newID = i + 1;
var newPort = 8000 + i + 1;
var coordinatorIndicator = false;
if ((i % 4) == 0) {
coordinatorIndicator = true; // Say, this is going to be a coordinator
}
temp = a.createSlave (newID, coordinatorIndicator, newPort);
console.log ("New slave is : " + temp);
console.log ("Stringified is: " + JSON.stringify(temp));
myArray.push(temp);
}
Вы не можете стягивать только любой старый объект. – Pointy