I'm trying to execute a Function object which is essentially the same as the following pseudo-code:
var testF = new Function("x","y", "var http = require('http');");
testF('foo','bar');
And get:
ReferenceError: require is not defined
Do I need to somehow add something that reloads the require module as it's not a global module in Node? If so, google has not been my friend so any pointers on how to do so would be fantastic.
Thanks for your ideas.
Since new Function is a form of eval you can just eval
it:
eval("function testF(x,y){ console.log(require);}");
testF(1,2);
If you want to follow the original approach you'll need to pass those globals to the function scope:
var testF = new Function(
'exports',
'require',
'module',
'__filename',
'__dirname',
"return function(x,y){console.log(x+y);console.log(require);}"
)(exports,require,module,__filename,__dirname);
testF(1,2);