NodeClipse Eclipse plug-in for Node.js does not work with the embedded V8
Debugger.
Instead I accessed the JavaScript Application module exports to do
reflection with Node.js apps since "this" object is empty.
Here is the code:
app.js code:
var business_object = require('./user.js');
var node_framework = require('./trace-meldaround.js');
var user = new business_object.User('Leo');
var trace = new node_framework.Trace('Hello Meld App');
trace.doTrace();
user.sayHello();
user.sayGoodBye();
user.js code:
var User = function(name){
this.name = name;
};
User.prototype.sayHello = function(){
console.log('hello ' + this.name);
};
User.prototype.sayGoodBye = function(){
console.log('Good Bye ' + this.name);
};
exports.User = User;
trace-meldaround.js Code:
var meld, joinPoint;
meld = require('./meld.js');
joinPoint = meld.joinpoint;
var log4js = require('./node_framework/log4js-node-master/lib/log4js'); //
include log4js
log4js.configure({ // configure to use all types in different files.
appenders: [
{ type: 'file',
filename: '../logs/error.log', // specify the path where u want
logs folder error.log
category: 'error',
maxLogSize: 20480,
backups: 10
},
{ type: 'file',
filename: '../logs/info.log', // specify the path where u want
logs folder info.log
category: 'info',
maxLogSize: 20480,
backups: 10
},
{ type: 'file',
filename: '../logs/debug.log', // specify the path where u want
logs folder debug.log
category: 'debug',
maxLogSize: 20480,
backups: 10
}
]
});
var loggerinfo = log4js.getLogger('info'); // initialize the var to use.
var loggererror = log4js.getLogger('error'); // initialize the var to use.
var loggerdebug = log4js.getLogger('debug'); // initialize the var to use.
var Trace = function(AppName){
this.appName = AppName;
};
Trace.prototype.doTrace = function(){
function sayMeld(jp) {
console.log('meldaround function called for Application : ' +
Trace.constructor.AppName);
console.log('JoinPoint Method: ' + jp.method);
console.log('JoinPoint Target: ' + jp.target);
console.log('JoinPoint Args: ' + jp.args.toString());
console.log('JoinPoint Result: ' + jp.result);
console.log('JoinPoint Exception: ' + jp.exception);
loggerinfo.info('Calling Method: ' + jp.method);
loggererror.info('This is Error Logger');
loggerdebug.info('JoinPoint Method: ' + jp.method);
loggerdebug.info('JoinPoint Target: ' + jp.target);
loggerdebug.info('JoinPoint Args: ' + jp.args.toString());
loggerdebug.info('JoinPoint Result: ' + jp.result);
loggerdebug.info('JoinPoint Exception: ' + jp.exception);
}
var appObjects = module.parent.children;
var methods = [];
var objects = [];
for (var i=0; i<appObjects.length;i++){
if (typeof appObjects[i] == 'object'){
objects.push(appObjects[i]);
var funcObj = appObjects[i].exports;
if (typeof funcObj == 'object')
{
for (var key in funcObj){
var k =0;
var prototypeObj = funcObj[key].prototype;
methods[i] = [];
for (var proto in prototypeObj){
methods[i][k] = proto;
k++;
}
}
}
}
}
for (var j=0; j<objects.length; j++){
var ObjectName;
for (var key2 in objects[j].exports){
ObjectName = key2;
console.log(objects[j].exports[ObjectName].prototype);
for (var n=0; n<methods[j].length; n++){
if (ObjectName != 'Trace'){
meld.around(objects[j].exports[ObjectName].prototype,
methods[j][n], function(joinPoint){
sayMeld(joinPoint);
joinPoint.proceed();
});
}
}
}
}
};
exports.Trace = Trace;
On Thursday, January 29, 2015 at 8:51:33 AM UTC-5, Leo Cono wrote:
>
>
>
> <http://stackoverflow.com/questions/28216265/how-can-i-programmatically-access-v8-debugger-variables-list#>
>
>
> I am writing an AOP Container. I want to get a list of objects and
> functions contained in the app.js script. I can see that all of this is
> available with NodeClipse V8 Debugger Variables list.
>
> Question is: what code do I need to write to have access to the V8
> Debugger Variables list?
>
> Thanks, Leo
>
--
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/05547d9c-045f-4a9b-a9d2-9830538c6072%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.