Sorry in advance, I've been at this problem for 6 days now and have failed
at every single turn on what I need to do. I simply cannot afford to waste
more time, so I'm asking for help.
My directory structure looks like this:
/root
____/controllers
________server.ctrl.js
____/libs
________/classes
____________Server.js
____________ServerController.js
server.app.js
I am trying to create a "Server" class based on /libs/classes/Server.js.
When instantiated, it takes 1 param, the constant ENV (environment), which
is stored in its THIS scope.
One of the properties of the "Server" object is called 'ctrl' and that
should be set to an instance of the 'ServerController' class at
/libs/classes/ServerController.js
The 'ServerController' needs to inherit via the prototype chain, the
properties on the 'Server' so that it can gain access to the 'THIS' scope's
'ENV' when it references 'this.ENV'.
I have tried everything I can think of, many times 20x over, and cannot
figure out how this is done. Hopefully I have explained my situation well
enough. I'm able to do inheritance without modules, but something about
Node's module exporting is throwing me off my understanding.
*FYI*. The ServerController 'class' requires the /controllers/server.ctrl
module which exports an object of functions that the ServerController class
returns as direct functions off itself. Since ServerController gets stored
in the Server object's 'ctrl' property, I was hoping I could call it via
Server.ctrl.functionName();
*==================================================================*
*FROM HERE BELOW ARE THINGS I'VE TRIED, NOT NECESSARY TO THE QUESTION*
*==================================================================*
*in server.app.js:*
var Server = require('./libs/classes/Server'); // the 'Server' class.
var ServerController = require('./libs/classes/ServerController'); // the
'ServerController' class.
var ctrl = new ServerController();
var server = new Server(ENV, ctrl);
*in Server.js*:
function Server(ENV, ctrl) { this.ENV = ENV; this.ctrl = ctrl; }
Server.prototype.test = function() { console.log('Server-level test'); }
module.exports = Server;
*in ServerController.js:*
var Server = require('./Server');
function ServerController() { }
ServerController.prototype = Object.create(Server.prototype);
ServerController.prototype.test = function() {
console.log('Controller-level test, shadows Server-level'); }
module.exports = ServerController;
*Then I try to run things like:*
server.test(); // Expecting 'Server-level test'
server.ctrl.test(); // Expecting 'Controller-level test, shadows
Server-level');
But I'm running into tons of errors.
--
Job board: http://jobs.nodejs.org/
New group rules:
https://gist.github.com/othiym23/9886289#file-moderation-policy-md
Old group rules:
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
---
You received this message because you are subscribed to the Google Groups
"nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/nodejs/c774e1f1-8826-466b-a79f-48ddb0e9a787%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.