2016-04-26 39 views
0

Ok NodeJS so habe ich eine Klasse, dieNeues Objekt aus einer anderen Klasse

var GameServer = require("./GameServer"); 
var gameServer = new GameServer(); 

Gameserver() enthält

Gameserver JS

function GameServer() { 
    // Startup 
    this.run = true; 
    this.lastNodeId = 1; 
    this.lastPlayerId = 1; 
    this.clients = []; 
    this.largestClient; // Required for spectators 
    this.nodes = []; 
    this.nodesVirus = []; // Virus nodes 
    this.nodesEjected = []; // Ejected mass nodes 
    this.nodesPlayer = []; // Nodes controlled by players 
} 

Objekt JS enthält

Jetzt, versuchen, was im acheive erhält Gameserver von Object

In meiner Klasse i

neue JS

var ObjectClass = require("./ObjectClass"); 
var gameServer = ObjectClass.gameServer; 

Aber von diesem Weg versucht haben, ich werde nicht die greifen der Lage sein, Klasse GameServer() Eigenschaften. Ich bin neu bei Knoten und es tut mir leid, ich muss diese Frage stellen. Ich bin derzeit gerade jetzt

stecken Wenn ich versuche, Kunden von Gameserver

var ObjectClass = require("./ObjectClass"); 
var gameServer = ObjectClass.gameServer; 
gameServer.clients.length; 

ich Fehler bekommen zu packen, Kunden sind nicht definiert. Irgendwie in der Nähe?

Ich kann GameServer noch Object js nicht ändern.. Hauptsächlich mache ich ein Skript, um ein Skript für zusätzliche Funktionalitäten zu erstellen.

+0

Benötigt mehr Code. Vor allem was "andere Klasse" ist, und wahrscheinlich wie es erstellt wird. – dvlsg

+0

Code aktualisiert ... – NodeBeginner

+0

Haben Sie die Klassen in den Exporten? – rahpuser

Antwort

1

Sie sind die Exporte der Dateien so fehlt, wenn erforderlich machen (Datei) Sie bekommen und leeres Objekt {} ..

Für Gameserver sollten Sie so etwas wie tun:

'use strict'; 
function GameServer() { 
    // Startup 
    this.run = true; 
    this.lastNodeId = 1; 
    this.lastPlayerId = 1; 
    this.clients = []; 
    this.largestClient; // Required for spectators 
    this.nodes = []; 
    this.nodesVirus = []; // Virus nodes 
    this.nodesEjected = []; // Ejected mass nodes 
    this.nodesPlayer = []; // Nodes controlled by players 
} 

module.exports = exports = GameServer; 

Object

'use strict'; 
var GameServer = require("./GameServer"); 
var gameServer = new GameServer(); 
exports.gameServer = gameServer; 

Sie müssen verstehen, dass der Wert der Datei zurückgegeben cachen erfordern, so würden Sie eine Singleton von Gameserver werden.

+0

module.exports = exports = GameServer; ?? – NodeBeginner

+0

Ok danke .. Habe es :) – NodeBeginner

+0

Ich bin froh, dass es für Sie arbeitet.Nur zur Klarstellung, ich mache 'module.exports = exports = gameServer', nur um sicherzustellen, dass die exports-Variable auf dasselbe Objekt wie module.exports verweist, da wir die Referenz der Exporte überschreiben, also zeigt exports auf ein anderes Objekt. Am Ende könnten Sie module.exports verwenden und nur die Exporte vergessen. – rahpuser

Verwandte Themen